请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

synchronized可见性问题

我的理解是,加了synchronized关键字,在执行某代码块的时候,会强制保持和jmm(主内存的通信),保证可见性,不加的话就不强制通信,造成数据的脏读等问题?对吗师兄?
还有一个疑惑哈,就是线程什么时候和主内存进行一次通信,是随机的吗?还是一行代码(操作共有资源后)写入,那么发生线程错误就是读写顺序出错的概率是很大的啊,对不对?

正在回答

1回答

不是执行某代码块的时候,会强制保持和jmm(主内存的通信),保证可见性,而是在退出synchronized代码块之后才去通信来保持一致。

这个在讲happens-before的时候讲了,你看看那个部分哈。

0 回复 有任何疑惑可以回复我~
  • 提问者 佛系biu #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-03-10 16:27:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信