ThreadPool注解

关于线程池是很早就想去看的,在github上找了star最多的C++ 11 版本,然而一下子看不懂,就搁置在那了。 因为昨天百度面试问到了,我甚至回答我看过但是没看完,有点尴尬,今天花了点时间学了一下基础,并对源码进行了注解。 github 地址 先说一下我现在对上面这个线程池实现原理的理解。 理解之后可以说是很简单了,这个线程池本质上是互斥和条件变量的妙用。 我先开一个事件队列,再开几个线程,首先这些线程在整体上都是死循环,但会在事件队列为空的时候进入睡眠状态(由条件变量控制)。当事件队列非空,那么我就从事件队列中取出一个事件,再将这个事件搭载在线程上运行。事件运行结束后这个线程进入下一个循环,如果事件队列为空,则又会进入睡眠状态。如此循环往复…… 这里再分享一下我的一点学习经历,关于future,胡言乱语的一些理解,有错误后续会更改。 我当前的理解是,future是作为一个异步机制的需要而出现(猜测也是开了个线程异步执行。 future可由packaged_task封装后get_future,promise关联,async生产所得。 可使用get方法获其结…