相关疑难解决方法(0)

如何在Java中初始化ThreadLocal对象

我遇到了一个问题,我正在创建一个ThreadLocal并用新的ThreadLocal初始化它.问题是,我在概念上只是想要一个持久的列表,这个列表会延续线程的生命,但我不知道是否有办法在Java中初始化每个线程的东西.

例如,我想要的是:

ThreadLocal static {
  myThreadLocalVariable.set(new ArrayList<Whatever>());
}
Run Code Online (Sandbox Code Playgroud)

这样它就可以为每个线程初始化它.我知道我可以这样做:

private static Whatever getMyVariable() {
  Whatever w = myThreadLocalVariable.get();
  if(w == null) {
    w = new ArrayList<Whatever>();
    myThreadLocalVariable.set(w);
  }
  return w; 
}
Run Code Online (Sandbox Code Playgroud)

但是每次使用它时我都不需要检查它.我能在这做什么更好的事情吗?

java static-block thread-local

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×1

static-block ×1

thread-local ×1