你的位置:首页 > 软件开发 > Java > 手写总结:synchronized 和 lock 区别

手写总结:synchronized 和 lock 区别

发布时间:2016-08-05 11:00:44
1. synchronized 是jvm 层次的(可以会造成死锁), lock 可以写代码控制,一般在异常时在 finally 里可以 unlock 释放锁 2. lock 细度更细,synchronized 一个线程锁住了,其他线程无法进入。 ...

    1.  synchronized 是jvm 层次的(可以会造成死锁), lock 可以写代码控制,一般在异常时在 finally 里可以 unlock 释放锁

    2. lock 细度更细,synchronized 一个线程锁住了,其他线程无法进入。而 lock 里的 ReadWriteLock 可以获得 读锁 和写锁。可以允许多个写锁进入,

写锁和写锁不互斥,写锁和(写锁或者读锁)互斥

    3. lock 可以用  trylock  试着获得 锁 ,如果获得返回true,接着执行,否则可以去执行其他事情,而 synchronized 则一直等待,同时tryLock 还可以设置

在某个时间段内获得锁

      if(lock.tryLock()){

       // 获得锁 ,继续执行

     } else {

      // 没获得锁 ,干其他事情

     }

   4. lock 可以new 一个 condition ,condition 相当于 wait  和 notify  的作用

  


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:手写总结:synchronized 和 lock 区别

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录