hoho,这个线程模型有点意思
58沈剑
架构师之路
架构师之路
微信号
road5858
功能介绍
架构师之路,坚持撰写接地气的架构文章
Leader-Follower是一种经典的多线程模型。
上图就是
L/F多线程模型的状态变迁图,这个线程模型有6个关键点。
关键点一:线程三种状态。
(1)
领导中,
leading;
(2)
处理中,processing;
(3)
追随中,following;
关键点二:N个线程状态各异。
(1)只有
1个leading线程(等待任务);
(2)有x个processing线程(处理);
(3)有
N-1-x个following线程(空闲);
关键点三:有
一把锁,谁抢到就是leading。
关键点四:事件/任务来到时,
leading线程会对其进行处理
,从而转化为processing状态,处理完成之后,又转变为following。
关键点五:
丢失leading后,following会尝试抢锁
,抢到则变为leading,否则保持following。
关键点六:
following不干事,就是抢锁,力图成为leading。
这个线程模型有什么优点?
不需要消息队列。
这个线程模型适用什么场景?
线程能够很快的完成工作任务。
有人说“并发量大时,L/F的锁容易成为系统瓶颈,需要引入一个消息队列解决。”
此观点不对,一个消息队列,其仍是临界资源,仍需要一把锁来保证互斥,只是锁竞争从leading移到了消息队列上,此时消息队列仅仅只能起到消息缓冲的作用。
根本解决方案是降低锁粒度
(例如多个队列)。
F-L线程模型,你有使用过么?
预览时标签不可点
微信扫一扫
关注该公众号
继续滑动看下一个
轻触阅读原文
架构师之路
向上滑动看下一个
知道了
微信扫一扫
使用小程序
取消
允许
取消
允许
:
,
。
视频
小程序
赞
,轻点两下取消赞
在看
,轻点两下取消在看
分享
留言