加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java强制易失访问

发布时间:2020-12-15 04:41:43 所属栏目:Java 来源:网络整理
导读:考虑这样的情况. 有两个线程和一个共享资源(如HashMap).一个线程创建了HashMap并使用一些键值对初始化它,并且在初始化共享资源之后,它将永远不会再次被修改. 现在,第二个线程是在初始化共享资源并且想要使用该资源之后严格创建的.此时我想保证第二个线程将使
考虑这样的情况.

有两个线程和一个共享资源(如HashMap).一个线程创建了HashMap并使用一些键值对初始化它,并且在初始化共享资源之后,它将永远不会再次被修改.

现在,第二个线程是在初始化共享资源并且想要使用该资源之后严格创建的.此时我想保证第二个线程将使用正确版本的共享资源.我假设第一个线程可能在创建第二个线程之前没有刷新对主内存的更改,因此第二个线程将共享资源的旧值带到它的缓存中.

这个分析是否正确,以及如何在初始化共享资源后手动强制刷新到Java中的主内存,就像我不想要或不需要volatile或同步的特殊情况一样.

解决方法

The documentation说:

A call to start on a thread happens-before any action in the started thread.

因此,如果您的代码符合您的描述,那么它是安全的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读