chapter13_显式锁_3_公平性

  • (1) 在ReentrantLock的构造函数中可以指定创建公平性的锁还是非公平性的锁

      /**
       * Creates an instance of {@code ReentrantLock} with the
       * given fairness policy.
       *
       * @param fair {@code true} if this lock should use a fair ordering policy
       */
      public ReentrantLock(boolean fair) {
          sync = fair ? new FairSync() : new NonfairSync();
      }
    

    (2)

    公平锁, 线程将按照它们请求锁的顺序获得锁;

    非公平锁, 如果一个线程请求它, 并且在发出请求的同时恰好锁的状态变为可用, 则这个线程__“插队”__获得这个锁

    (3) 非公平锁的性能一般好于公平锁

    其中一个原因是__恢复一个线程到这个线程真正开始运行中间存在时间差__, 非公平锁可以利用这段时间就把锁获得到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值