java中Synchronized和lock的用法

synchronized是Java的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。JDK1.5以后引入了自旋锁、锁粗化、轻量级锁,偏向锁来有优化关键字的性能。

Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现;synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过unLock()去释放锁,则很可能造成死锁现象,因此使用Lock时需要在finally块中释放锁;Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断;通过Lock可以知道有没有成功获取锁,而synchronized却无法办到。

java中Synchronized和lock的用法-上流阁

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/java/2019/11/08/1221.html
发表评论

坐等沙发
相关文章
java中volatile关键词的作用
java中volatile关键词的作用
jar包解压后,修改完配置文件,再还原成jar包
jar包解压后,修改完配置文件,再还原成…
JAVA DES 十六进制加密
JAVA DES 十六进制加密
mysql 优化方案整理
mysql 优化方案整理
浏览器插件管理地址 谷歌 360 浏览器 国产化适配中PageOffice 浏览器支持查看
浏览器插件管理地址 谷歌 360 浏览器 国…
windows BAT 文件 多个命令同步执行
windows BAT 文件 多个命令同步执行
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论