Leader/Follower 模型
1、有若干个线程(一般组成线程池)用来处理大量的事件
2、有一个线程作为领导者,等待事件的发生;其它线程作为跟随者,仅仅是睡眠
3、假如有事件到达,领导者会从跟随者中指定一个新的领导者,自己去处理事件
4、唤醒的跟随者作为新的领导者等待事件的发生
5、处理事件的线程处理完毕以后,就会成为跟随者的一员,直到被唤醒成为领导者
此模型的领导者和跟随者之间是一种平等的关系,处理过程中减少线程间的切换,效率比较高。
实例可见tb-common-utils中的ThreadPool.h/cpp,有详细的源码实例。