Synchronized 和 lock 的区别



Synchronized
 1:jvm 层面实现,如果抛异常的话,jvm会自动释放掉锁
 2:只有一个条件变量,锁对象的wait 和 notify
 3:可以被性能监视工具监视到
 4:如果在方法上添加syn那么,锁对象就是该对象,共享该对象的线程就会互斥

Lock
 1:更加面向对象
 2:代码层面实现
 3:可以产生多个条件变量

 4:可以尝试非阻塞的获取锁,能中断的获取锁,能超时获取锁


Lock能完成所有synchronized的功能,并且更加面向对象,能提供更精确的定义,更好的性能
synchronized 会自动释放锁,lock需要手动释放锁.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM