admin 管理员组文章数量: 1086019
锁与同步的区别
同步是synchronized关键字也就是内部锁,可以在方法上或代码块上,构成同步方法和同步块,可以保证资源保证的排他性。
lock显式锁,是通过代码实现的,它比synchronized有更精确的线程语义,提供了超时获取锁,定时锁,等候和中断锁等功能,避免死锁。在竞争不是很激烈的情况下,synchronized性能优于Lock,竞争激烈的情况下synchronized的性能会下降的很快,而Lock则不会改变
==============================================================
1.Lock是一个接口,而synchronized是关键字
2.synchronized是内置语言的实现,synchronized是在虚拟机层面上实现的,不但可以通过一些监控工具监控synchronized的锁定,而且,在代码执行时出现异常JVM会自动释放锁定。但是Lock不行,Lock是通过代码实现的,要保证锁一定被释放,就必须将Unlock()放在finally{}中。
3.Lock可以让等待的线程响应中断,线程可以去做别的事情;synchronized不行,等待的线程会一直等下去,不能够响应中断。
4.Lock知道是否获得锁,知道锁的状态,而Synchronized却无法办到。
5Lock可以提高多个线程进行操作的效率。
本文标签: 锁与同步的区别
版权声明:本文标题:锁与同步的区别 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686729591a30212.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论