|
CGraph
|
和主线程UThreadPrimary不同,辅助线程没有第一第二任务队列的概念,因为辅助线程不允许窃取, 而是直接从普通任务队列(pool_task_queue_)和优先级任务队列(pool_priority_task_queue_)取任务 当然:主线程不会从优先级任务队列(pool_priority_task_queue_)取任务, 这个任务队列存储的一般是长时间任务,是辅助线程专用的 More...
#include <UThreadSecondary.h>


Public Member Functions | |
| UThreadSecondary () | |
Public Member Functions inherited from CObject | |
| CObject ()=default | |
| virtual | ~CObject ()=default |
Protected Member Functions | |
| CStatus | init () override |
| CStatus | setThreadPoolInfo (UAtomicQueue< UTask > *poolTaskQueue, UAtomicPriorityQueue< UTask > *poolPriorityTaskQueue, UThreadPoolConfigPtr config) |
| CStatus | run () final |
| CVoid | processTask () override |
| CVoid | processTasks () override |
| CVoid | waitRunTask (CMSec ms) |
| bool | freeze () |
Protected Member Functions inherited from UThreadBase | |
| UThreadBase () | |
| ~UThreadBase () override | |
| CStatus | destroy () override |
| virtual CBool | popPoolTask (UTaskRef task) |
| virtual CBool | popPoolTask (UTaskArrRef tasks) |
| CVoid | runTask (UTask &task) |
| CVoid | runTasks (UTaskArr &tasks) |
| CVoid | reset () |
| CVoid | loopProcess () |
| CVoid | setSchedParam () |
| CVoid | setAffinity (int index) |
Protected Member Functions inherited from UThreadObject | |
| CStatus | run () override |
Protected Member Functions inherited from UtilsObject | |
| CStatus | run () override |
Private Attributes | |
| CSec | cur_ttl_ = 0 |
Friends | |
| class | UThreadPool |
Additional Inherited Members | |
Protected Attributes inherited from UThreadBase | |
| CBool | done_ |
| CBool | is_init_ |
| CBool | is_running_ |
| CInt | type_ = 0 |
| CULong | total_task_num_ = 0 |
| UAtomicQueue< UTask > * | pool_task_queue_ |
| UAtomicPriorityQueue< UTask > * | pool_priority_task_queue_ |
| UThreadPoolConfigPtr | config_ = nullptr |
| UMetrics | metrics_ |
| std::thread | thread_ |
| std::mutex | mutex_ |
| std::condition_variable | cv_ |
和主线程UThreadPrimary不同,辅助线程没有第一第二任务队列的概念,因为辅助线程不允许窃取, 而是直接从普通任务队列(pool_task_queue_)和优先级任务队列(pool_priority_task_queue_)取任务 当然:主线程不会从优先级任务队列(pool_priority_task_queue_)取任务, 这个任务队列存储的一般是长时间任务,是辅助线程专用的
|
inlineexplicit |
|
inlineprotected |
判断本线程是否需要被自动释放
|
inlineoverrideprotectedvirtual |
|
inlineoverrideprotectedvirtual |
|
inlineoverrideprotectedvirtual |
|
inlinefinalprotectedvirtual |
|
inlineprotected |
设置pool的信息
| poolTaskQueue | |
| poolPriorityTaskQueue | |
| config |
有等待的执行任务
| ms |

|
friend |
|
private |