浅谈线程池
- 线程池(英语:thread pool):一种线程应用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池保护着多个线程,期待着监督管理者调配可并发执行的工作。这防止了在解决 短时间工作时创立与销毁线程的代价。线程池不仅可能保障内核的充分利用,还能避免过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络 sockets 等的数量。例如,线程数个别取 cpu 数量 + 2 比拟适合,线程数过多会导致额定的线程切换开销。
- 任务调度以执行线程的常见办法是应用同步队列,称作工作队列。池中的线程期待队列中的工作,并把执行完的工作放入实现队列中。
C++11 多线程总结
- 线程创立的极限数量个别为 2000 个。
-
线程创立数量倡议
- 采纳某些开发倡议和批示来确保程序高效执行。
- 依据理论利用场景;思考可能被阻塞的最大线程数量,即创立多余最大被阻塞(耗时工作)线程数量的线程。如,有 100 个线程可能解决耗时工作,启动 110 个线程就能够保障有闲暇线程解决其它申请。
- 线程的创立数量尽量不要超过 500 个,尽量管制在 200 个之内。
C++ 线程相干参考网址
cplusplus.com
cppreference.com