公平锁和非公平锁

2021-08-27  本文已影响0人  张某某xyz

20210827

公平锁

当来了一个线程,他就到队列中等待,线程按照在队列中的顺序去获得锁

优点:不会有某个线程一直得不到锁

缺点:假如排在前面的线程要占用很长时间的锁,排在后面的线程就迟迟得不到锁(银行办业务,我办业务只要5分钟,我前面的人要搞1小时,造成我办5分钟业务,却要等1小时)

占着锁和占着CPU是两回事!一个线程sleep时他不占着CPU,但占着锁

非公平锁

当来了一个线程,他直接去尝试获取锁,发现锁被其它线程占着,才去队列中等待

助记

银行办业务:
公平锁是每个来办业务的人都主动抽号排队,就算因为下一个人行动迟缓,柜台空着,也没人抢着办业务;

非公平锁就是每个来办业务的人,一进门就看柜台是否空着,如果空着就抢下柜台,如果不空才抽号排队

参考

https://www.imooc.com/article/302143

上一篇 下一篇

猜你喜欢

热点阅读