非最终字段上的同步机制,有哪些深入思考点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1043个文字,预计阅读时间需要5分钟。
一、场景:在程序中使用synchronized关键字
二、环境:- 软件:IntelliJ IDEA- 版本:2019.1- JDK:1.8
三、原因:从提示来看,可能是因为使用了synchronized关键字,导致IDEA检测到同步代码块,从而在右侧出现黄色警告条。
一、场景
程序里面使用了synchronized关键字,IntelliJ IDEA右边出现了黄色条,移动到上面,提示如下:
二、环境
软件
版本
JDK
1.8
IntelliJ IDEA
2019.1
三、原因
从提示来看,就是说,如果变量的引用发生了改变,就会导致synchronized失效,然后其他线程就会进入原本没有结束的synchronized代码块。所以要使用final来修饰变量,使引用不发生改变。
四、尝试
接下来让我们来验证一下,是否真的如提示所说。
本文共计1043个文字,预计阅读时间需要5分钟。
一、场景:在程序中使用synchronized关键字
二、环境:- 软件:IntelliJ IDEA- 版本:2019.1- JDK:1.8
三、原因:从提示来看,可能是因为使用了synchronized关键字,导致IDEA检测到同步代码块,从而在右侧出现黄色警告条。
一、场景
程序里面使用了synchronized关键字,IntelliJ IDEA右边出现了黄色条,移动到上面,提示如下:
二、环境
软件
版本
JDK
1.8
IntelliJ IDEA
2019.1
三、原因
从提示来看,就是说,如果变量的引用发生了改变,就会导致synchronized失效,然后其他线程就会进入原本没有结束的synchronized代码块。所以要使用final来修饰变量,使引用不发生改变。
四、尝试
接下来让我们来验证一下,是否真的如提示所说。

