线程池
前言
graph TD
subgraph 线程池
线程1
线程2
线程3
线程4
线程5
...
end
任务队列[任务队列]
调度器 --> 线程1
调度器 --> 线程2
调度器 --> 线程3
调度器 --> 线程4
调度器 --> 线程5
任务1 --> 调度器
任务2 --> 调度器
任务3 --> 调度器
任务4 --> 调度器
任务5 --> 调度器
任务6 --> 调度器
任务7 --> 调度器
线程1 --> 执行任务1[执行任务1]
线程2 --> 执行任务2[执行任务2]
线程3 --> 执行任务3[执行任务3]
线程4 --> 执行任务4[执行任务4]
线程5 --> 执行任务5[执行任务5]
执行任务1 --> 休眠1[休眠等待]
执行任务2 --> 休眠2[休眠等待]
执行任务3 --> 休眠3[休眠等待]
执行任务4 --> 休眠4[休眠等待]
执行任务5 --> 休眠5[休眠等待]
任务6 --> 调度器 --> 唤醒线程1[唤醒线程1]
唤醒线程1 -.-> 线程1
线程1 --> 执行任务6[执行任务6]
执行任务6 --> 休眠1
任务7 --> 调度器 --> 唤醒线程2[唤醒线程2]
唤醒线程2 -.-> 线程2
线程2 --> 执行任务7[执行任务7]
执行任务7 --> 休眠2
市面上常见的线程池
boost::asio::thread_pool
boost::asio::thread_poolQThreadPool
QThreadPool常量
值
描述
实现线程池
总结
Last updated