synchronized可见性问题
来源:10-5 找到错误2

佛系biu
2020-03-10
我的理解是,加了synchronized关键字,在执行某代码块的时候,会强制保持和jmm(主内存的通信),保证可见性,不加的话就不强制通信,造成数据的脏读等问题?对吗师兄?
还有一个疑惑哈,就是线程什么时候和主内存进行一次通信,是随机的吗?还是一行代码(操作共有资源后)写入,那么发生线程错误就是读写顺序出错的概率是很大的啊,对不对?
写回答
1回答
-
不是执行某代码块的时候,会强制保持和jmm(主内存的通信),保证可见性,而是在退出synchronized代码块之后才去通信来保持一致。
这个在讲happens-before的时候讲了,你看看那个部分哈。
012020-03-10
相似问题