美文网首页
Java之公平锁和非公平锁

Java之公平锁和非公平锁

作者: zhglance | 来源:发表于2020-02-29 11:47 被阅读0次

1.公平锁

公平锁是指多个线程按照申请锁的顺序来执行获取锁,线程在队列中排队,队列中的第一个线程获取锁,其他线程处于阻塞状态;

优点:等待线程不会饿死
缺点:CPU唤起等待的线程需要一定的开销。

2.非公平锁

非公平锁指多个线程加锁的时候,直接尝试获取锁,获取到锁则直接执行(只会有一个线程获取到锁),获取不到的线程才会放到等待队列的队尾,等待执行。

优点:当线程尝试获取锁时,获取到锁了,则会直接执行,避免了CPU唤起所有线程,避免了线程唤起的开销,整体吞吐量提高。
缺点:等待队列中的线程可能会饿死或者会等待很久。

相关文章

网友评论

      本文标题:Java之公平锁和非公平锁

      本文链接:https://www.haomeiwen.com/subject/vqzuhhtx.html