image.png

上图就是L/F多线程模型的状态变迁图,共6个关键点:

(1)线程有3种状态:领导leading,处理processing,追随following;

(2)假设共N个线程,其中只有1个leading线程(等待任务),x个processing线程(处理),余下有N-1-x个following线程(空闲);

(3)有一把锁,谁抢到就是leading;

(4)事件/任务来到时,leading线程会对其进行处理,从而转化为processing状态,处理完成之后,又转变为following;

(5)丢失leading后,following会尝试抢锁,抢到则变为leading,否则保持following;

(6)following不干事,就是抢锁,力图成为leading;

优点:不需要消息队列

有人说“并发量大时,L/F的锁容易成为系统瓶颈,需要引入一个消息队

收藏 打印