|
Console Library 8.0.0
A header-only library that makes C++ simple
|
简单的线程池实现,模仿了 Python 的 concurrent.futures.ThreadPoolExecutor 接口。 More...
#include <atomic>#include <condition_variable>#include <functional>#include <future>#include <memory>#include <mutex>#include <queue>#include <thread>#include <type_traits>#include <utility>#include <vector>#include "../core/csexc.h"Go to the source code of this file.
Classes | |
| class | console::ThreadPool |
| 线程池执行器类,用于管理和执行并发任务。 More... | |
| struct | console::ThreadPool::TaskBase |
| 任务基类,提供多态接口。 More... | |
| struct | console::ThreadPool::Task< T > |
| 具体任务类模板,封装 std::packaged_task。 More... | |
Namespaces | |
| namespace | console |
| 本库所有组件所在的顶层命名空间。 | |
| namespace | console::pool |
Functions | |
| ThreadPool & | console::pool::instance () |
| 获取线程池单例。 | |
| template<class F, class... Args> | |
| auto | console::pool::submit (F &&f, Args &&...args) -> std::future< decltype(std::forward< F >(f)(std::forward< Args >(args)...))> |
| 提交任务到线程池。 | |
| template<class F, class Container> | |
| auto | console::pool::map (F &&f, const Container &c) -> std::vector< std::future< decltype(f(std::declval< typename Container::value_type >()))> > |
| 对容器中的元素应用函数,并返回结果的 future 对象。 | |
| void | console::pool::wait () |
| 等待所有任务完成。 | |
| size_t | console::pool::waiting_task_count () |
| 获取等待执行的任务数量。 | |
| size_t | console::pool::active_task_count () |
| 获取当前正在执行的任务数量。 | |
| size_t | console::pool::active_worker_count () |
| 获取当前正在执行的工作线程数量。 | |
| void | console::pool::close () |
| 关闭线程池。 | |
| void | console::pool::abort () |
| 中止线程池。 | |
| template<class F, class... Args> | |
| auto | console::async (F &&f, Args &&...args) -> std::future< decltype(std::forward< F >(f)(std::forward< Args >(args)...))> |
| 提交一个可调用对象到全局线程池执行。 | |
简单的线程池实现,模仿了 Python 的 concurrent.futures.ThreadPoolExecutor 接口。
该模块提供了一个高效的线程池实现,支持任务提交、批量映射执行、 等待所有任务完成、优雅关闭等功能。适用于需要并发执行多个独立任务的场景。