(1)什么是线程池
线程池是线程的一种使用模式。在前面的情况中,我们都是遇到任务然后创建线程进行再执行。但是线程的频繁创建就类似于内存的频繁申请,会给操作系统带来更大的压力,进而影响整体的性能。
所以我们一次申请好一定数量而定线程,然后将线程的管理操作交给线程池,就避免了在短时间内不断创建与销毁线程的代价,线程池不但能够保证内核的充分利用,还能防止过分调度,并根据实际业务情况进行修改
(2)实现一个简单的线程池
如下我们实现一个简单的线程池,主线程(test.cpp
)向任务队列中投递任务,线程池中的线程(thread_pool.hpp
)从任务队列中拿任务进行工作,任务是判断一个数是否为素数,然后输出,最终投递任务结束后主线程终止线程池
thread_poo.h