YSTest: ystdex::task_pool类 参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 成员函数 | Private 属性 | 所有成员列表
ystdex::task_pool类 参考

任务池：带有队列大小限制的线程池。 更多...

`#include <concurrency.h>`

类 ystdex::task_pool 继承关系图:
[图例]
ystdex::task_pool 的协作图:
[图例]

## Public 成员函数

| task_pool (size_t n, std::function< void()> on_enter={}, std::function< void()> on_exit={})
| 初始化：使用指定的初始化和退出回调指定数量的工作线程和最大任务数。 更多...
bool | can_enqueue_unlocked () const
size_t | get_max_task_num () const
void | reset ()
| 重置线程池。 更多...
template<typename _func , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | poll (_func poller, _fCallable &&f, _tParams &&...args)
template<typename _func , typename _tDuration , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | poll_for (_func poller, const _tDuration &duration, _fCallable &&f, _tParams &&...args)
template<typename _func , typename _tTimePoint , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | poll_until (_func poller, const _tTimePoint &abs_time, _fCallable &&f, _tParams &&...args)
template<typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | wait (_fCallable &&f, _tParams &&...args)
template<typename _tDuration , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | wait_for (const _tDuration &duration, _fCallable &&f, _tParams &&...args)
template<typename _fWaiter , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | wait_to_enqueue (_fWaiter waiter, _fCallable &&f, _tParams &&...args)
template<typename _tTimePoint , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | wait_until (const _tTimePoint &abs_time, _fCallable &&f, _tParams &&...args)

## Private 属性

size_t | max_tasks
std::condition_variable | enqueue_condition {}

## 额外继承的成员函数

Private 成员函数 继承自 ystdex::thread_pool
| thread_pool (size_t, std::function< void()>={}, std::function< void()>={})
| 初始化：使用指定的初始化和退出回调指定数量的工作线程。 更多...
| ~thread_pool ()
| 析构：设置停止状态并等待所有执行中的线程结束。 更多...
template<typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | enqueue (_fCallable &&f, _tParams &&...args)
size_t | size () const
size_t | size_unlocked () const
template<typename _fWaiter , typename _fCallable , typename... _tParams>
future_result_t< _fCallable, _tParams... > | wait_to_enqueue (_fWaiter waiter, _fCallable &&f, _tParams &&...args)
| 等待操作进入队列。 更多...

## 详细描述

任务池：带有队列大小限制的线程池。

注解
  除非另行约定，所有公开成员函数线程安全。

自从
  build 538

待办事项:
  允许调整队列大小限制。

在文件 concurrency.h 第 197 行定义.

## 构造及析构函数说明

ystdex::task_pool::task_pool | ( | size_t | n,
|  | std::function< void()> | on_enter = `{}`,
|  | std::function< void()> | on_exit = `{}`
| ) |  |

inline

初始化：使用指定的初始化和退出回调指定数量的工作线程和最大任务数。

参见
  thread_pool::thread_pool

自从
  build 543

在文件 concurrency.h 第 209 行定义.

## 成员函数说明

bool ystdex::task_pool::can_enqueue_unlocked | ( |  | ) | const

inline

警告
  非线程安全。

在文件 concurrency.h 第 217 行定义.

size_t ystdex::task_pool::get_max_task_num | ( |  | ) | const

inline

在文件 concurrency.h 第 223 行定义.

template<typename _func , typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::poll | ( | _func | poller,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 623

在文件 concurrency.h 第 241 行定义.

参考 CHRLib::args, YSLib::IO::f , 以及 yforward.

template<typename _func , typename _tDuration , typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::poll_for | ( | _func | poller,
|  | const _tDuration & | duration,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 concurrency.h 第 254 行定义.

参考 CHRLib::args, YSLib::IO::f , 以及 yforward.

template<typename _func , typename _tTimePoint , typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::poll_until | ( | _func | poller,
|  | const _tTimePoint & | abs_time,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 concurrency.h 第 267 行定义.

参考 CHRLib::args, YSLib::IO::f , 以及 yforward.

void ystdex::task_pool::reset | ( |  | ) |

重置线程池。

注解
  阻塞等待当前所有任务完成后重新创建。

template<typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::wait | ( | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 concurrency.h 第 279 行定义.

参考 CHRLib::args, YSLib::IO::f , 以及 yforward.

template<typename _tDuration , typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::wait_for | ( | const _tDuration & | duration,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 concurrency.h 第 288 行定义.

参考 CHRLib::args, YSLib::IO::f , 以及 yforward.

template<typename _fWaiter , typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::wait_to_enqueue | ( | _fWaiter | waiter,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 concurrency.h 第 297 行定义.

参考 CHRLib::args, YSLib::IO::f, ystdex::invoke(), ystdex::thread_pool::wait_to_enqueue() , 以及 yforward.

函数调用图:
template<typename _tTimePoint , typename _fCallable , typename... _tParams>

future_result_t<_fCallable, _tParams...> ystdex::task_pool::wait_until | ( | const _tTimePoint & | abs_time,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 concurrency.h 第 317 行定义.

参考 CHRLib::args, YSLib::IO::f , 以及 yforward.

## 类成员变量说明

std::condition_variable ystdex::task_pool::enqueue_condition {}

private

在文件 concurrency.h 第 201 行定义.

size_t ystdex::task_pool::max_tasks

private

在文件 concurrency.h 第 200 行定义.

该类的文档由以下文件生成:

- concurrency.h