synchronized 和lock的区别摘要

一直想写线程锁相关的东西,然后自己之前也是有些模糊,自从开了一篇文章,感觉茅塞顿开  引文 

http://www.cnblogs.com/dolphin0520/p/3923167.html

在这里概括一下,防止自己忘却:

1  :synchronized 是内置的,而lock是util的并发包中的

2 :前者一旦使用,只有两种可能会释放锁。 一:  发生异常,由jvm自动释放

                     二 :执行完毕,正常释放

  后者使用后要想释放锁,只能调用unlock方法

  后者有唯一实现类 ReentrantLock 可重入锁,相当于读写分离,可以将完善锁机制的效率问题。在lock的情况下,任何一个线程调用了写锁,才会使其他线程进行等待,若是多个线程进行的都是读操作,那么,可以异步进行,不需要同步,提升效率

   

如有错误,请邮件zs253499660@sina.com,如有更好的方法,可以推荐
原文地址:https://www.cnblogs.com/senjiang/p/10597542.html