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

被折叠的 条评论
为什么被折叠?



