+-
首页 专栏 后端 文章详情
TianSong 发布于 2 月 16 日
关注作者
关注作者

0
【C++并发与多线程】 13_线程池浅谈,线程数量总结
浅谈线程池
线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理 短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。 例如,线程数一般取cpu数量+2比较合适,线程数过多会导致额外的线程切换开销。 任务调度以执行线程的常见方法是使用同步队列,称作任务队列。池中的线程等待队列中的任务,并把执行完的任务放入完成队列中。C++11多线程总结
线程创建的极限数量一般为 2000 个。线程创建数量建议
采用某些开发建议和指示来确保程序高效执行。 根据实际应用场景;考虑可能被阻塞的最大线程数量,即创建多余最大被阻塞(耗时任务)线程数量的线程。如,有100个线程可能处理耗时任务,启动 110 个线程就可以保证有空闲线程处理其它请求。 线程的创建数量尽量不要超过 500 个,尽量控制在 200 个之内。C++线程相关参考网址
cplusplus.com
cppreference.com
c++ 后端
阅读 53 发布于 2 月 16 日
赞
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
C 进阶/C++ 深度解析/数据结构实战开发
C语言进阶;进入C++的世界;数据结构编写高质量代码。
关注专栏
TianSong
阿里山神木的种子在3000年前已经埋下,今天不过是看到当年注定的结果,为了未来的自己,今天就埋下一颗好种子吧
397 声望
31 粉丝
0 条评论
得票 时间
提交评论
TianSong
阿里山神木的种子在3000年前已经埋下,今天不过是看到当年注定的结果,为了未来的自己,今天就埋下一颗好种子吧
397 声望
31 粉丝
宣传栏
目录
▲
浅谈线程池
线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理 短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。 例如,线程数一般取cpu数量+2比较合适,线程数过多会导致额外的线程切换开销。 任务调度以执行线程的常见方法是使用同步队列,称作任务队列。池中的线程等待队列中的任务,并把执行完的任务放入完成队列中。C++11多线程总结
线程创建的极限数量一般为 2000 个。线程创建数量建议
采用某些开发建议和指示来确保程序高效执行。 根据实际应用场景;考虑可能被阻塞的最大线程数量,即创建多余最大被阻塞(耗时任务)线程数量的线程。如,有100个线程可能处理耗时任务,启动 110 个线程就可以保证有空闲线程处理其它请求。 线程的创建数量尽量不要超过 500 个,尽量控制在 200 个之内。C++线程相关参考网址
cplusplus.com
cppreference.com