采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
感觉上,while不在同不代码块里,会不会出现静态变量 count脏读?比如一个线程加了,但是另一个线程比较的是没有加的数据,导致多加了一遍
放到synchronized里面或者加volatile来保证可见性。
synchronized可以,volatile可见但是不是原子性,如果对++进行同步代码块,保证++会写成功,就可以原子性了,直接修改volatile读写是原子性,但是++不能保证,是这样吗?这是以前自己的理解,所以我在多线程批量记账一般会用atomic包去做批次检验
“volatile可见但是不是原子性,如果对++进行同步代码块,保证++会写成功,就可以原子性了,直接修改volatile读写是原子性,但是++不能保证” 是这样的,关于volatile的性质在后面章节中有详细介绍。
感谢老师,看了前面的课,感觉对于多线程的知识自己了解的太零散了,只停留在业务的基础运用,继续学习~~~~~~~
登录后可查看更多问答,登录/注册
完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题
1.9k 26
916 12
1.1k 12
2.5k 12
1.1k 11