美文网首页
ReentrantLock vs synchronized比较分

ReentrantLock vs synchronized比较分

作者: zhaozhaoicode | 来源:发表于2020-05-07 01:38 被阅读0次

ReentrantLock可以替代synchronized使用

  • cas(CompareAndSet) vs 锁升级
    • ReentrantLock 是cas(unsafe操作CPU原语来实现的)
    • synchronized主要是一个锁升级的过程(偏向锁->自旋锁->系统锁)
  • ReentrantLock 可以使用 trylock
    Lock lock = new ReentrantLock();
    locked = lock.tryLock(5, TimeUnit.SECONDS);
    
  • ReentrantLock 可以对interrupt()方法做出响应
    Lock lock = new ReentrantLock();
    lock.lockInterruptibly(); 
    
  • ReentrantLock 支持公平锁和非公平锁的切换,synchronized只有非公平锁
    ReentrantLock lock=new ReentrantLock(true);
    

相关文章

网友评论

      本文标题:ReentrantLock vs synchronized比较分

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