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

java – 每个线程可以有一个唯一的静态变量吗?

发布时间:2020-12-15 05:21:44 所属栏目:Java 来源:网络整理
导读:我有一个静态变量,我希望每个线程都是唯一的. 这是所有静态变量的情况吗?或者不能保证.也就是说,线程偶尔会更新主内存中的静态变量值,还是保留给自己? 如果无法保证这一点,Java中是否存在静态和线程唯一的任何类型的变量?什么东西本质上是一个线程的全局,
我有一个静态变量,我希望每个线程都是唯一的.

这是所有静态变量的情况吗?或者不能保证.也就是说,线程偶尔会更新主内存中的静态变量值,还是保留给自己?

如果无法保证这一点,Java中是否存在静态和线程唯一的任何类型的变量?什么东西本质上是一个线程的全局,但隐藏其他线程?

解决方法

我认为你要找的是Java的 ThreadLocal.

This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own,independently initialized copy of the variable.

请注意,如果你进行线程池,这可能会给你带来麻烦,因为你可能认为你正在获得一个新的线程,从它开始一个新的进程,但发生的是你重用一个完成其他工作的线程数据因此有剩余,当它们在野外发生时很难调试.

Here是使用ThreadLocal的教程.

(编辑:李大同)

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

    推荐文章
      热点阅读