本篇内容介绍了“java的可见性问题举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联建站是一家专注于成都网站设计、成都网站建设与策划设计,浈江网站建设哪家好?创新互联建站做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:浈江等地区。浈江做网站价格咨询:18982081108
test1:
test1这个例子加了volatile,所以程序正确退出输出test1 end
test2:
test2这个例子没有加volatile,程序也正常退出并输出一堆0并输出了test2 end,这是为什么呢?没有加volatile为什么也有可见性?看起来是很诡异的问题,问题是在while里面加了一行System..输出问题,打开源码看println方法里面加了synchronized同步块,正是因为这个同步块保证了里面变量x的可见性,这个诡异的问题也就解开了。
test3:
test3这个例子即没加volatile,也没有在while里面加System..输出语句,所以线程对变量n3的修改对主线程不可见,程序一直循环,没有输出结果。
“java的可见性问题举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!