|
CGraph
|
工作窃取队列,实现为双端队列(deque_); push在队尾发生,可以一次性写入一个或多个任务,也支持tryPush和带锁的push; pop在队头发生,可以一次性拿出一个或多个任务,也支持tryPop; trySteal在队尾发生,可以一次性窃取一个或多个任务; More...
#include <UWorkStealingQueue.h>


Public Member Functions | |
| CVoid | push (T &&value) |
| CVoid | push (T &&value, CBool enable, CBool lockable) |
| CBool | tryPush (T &&value) |
| CVoid | push (const std::vector< T > &values) |
| CBool | tryPop (T &value) |
| CBool | tryPop (std::vector< T > &values, int maxLocalBatchSize) |
| CBool | trySteal (T &value) |
| CBool | trySteal (std::vector< T > &values, int maxStealBatchSize) |
| UWorkStealingQueue ()=default | |
Public Member Functions inherited from CObject | |
| CObject ()=default | |
| virtual CStatus | init () |
| virtual CStatus | destroy () |
| virtual | ~CObject ()=default |
Private Attributes | |
| std::deque< T > | deque_ |
Additional Inherited Members | |
Protected Member Functions inherited from UThreadObject | |
| CStatus | run () override |
Protected Member Functions inherited from UtilsObject | |
| CStatus | run () override |
Protected Attributes inherited from UQueueObject | |
| std::mutex | mutex_ |
| std::condition_variable | cv_ |
工作窃取队列,实现为双端队列(deque_); push在队尾发生,可以一次性写入一个或多个任务,也支持tryPush和带锁的push; pop在队头发生,可以一次性拿出一个或多个任务,也支持tryPop; trySteal在队尾发生,可以一次性窃取一个或多个任务;
| T |
|
default |
|
inline |
向队列中写入信息
| values |

|
inline |
向队列中写入信息
| value |

|
inline |
有条件的写入数据信息
| value | |
| enable | |
| state |
|
inline |
从头部开始批量获取可执行任务信息
| values | |
| maxLocalBatchSize |
|
inline |
弹出节点,从头部进行
| value |
|
inline |
尝试往队列里写入信息
| value |
|
inline |
批量窃取节点,从尾部进行
| values |
|
inline |
窃取节点,从尾部进行
| task |
|
private |