美文网首页
2020-08-13:公平锁和非公平锁有什么区别?

2020-08-13:公平锁和非公平锁有什么区别?

作者: 残冬十九 | 来源:发表于2020-08-14 06:38 被阅读0次

    前言

    每日一题专栏

    公平锁和非公平锁有什么区别

    公平锁

    公平锁:线程按照申请的顺序获取到所,申请的线程进入一个队列去排队,永远都是队里第一位获取到锁。
    优点:所有的线程都可以获取到锁资源,不会在队列中拿不到资源
    缺点:吞吐量下降,除了队列第一个线程,其他线程会进行阻塞,唤醒阻塞线程开销很大

    非公平锁

    非公平锁:多个线程去获取锁的时候,会直接去尝试获取,获取不到,再去进入等待队列,如果能获取到,就直接获取到锁。
    优点:可以减少CPU唤醒线程的开销,整体的吞吐效率会高点,CPU也不必唤醒所有线程,会减少唤起线程的数量。
    缺点:可能导致队列中间的线程一直获取不到锁或者长时间获取不到锁,导致饿死。

    相关文章

      网友评论

          本文标题:2020-08-13:公平锁和非公平锁有什么区别?

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