如何在Java中初始化ThreadLocal对象

17 浏览
0 Comments

如何在Java中初始化ThreadLocal对象

我遇到了一个问题,我正在创建一个ThreadLocal,并用new ThreadLocal()对其进行初始化。问题是,我实际上只需要一个在线程生命周期内持久存在的列表,但我不知道是否有一种方法可以在Java中每个线程初始化某些东西。

例如,我想要的是:

ThreadLocal static {
  myThreadLocalVariable.set(new ArrayList());
}

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

private static Whatever getMyVariable() {
  Whatever w = myThreadLocalVariable.get();
  if(w == null) {
    w = new ArrayList();
    myThreadLocalVariable.set(w);
  }
  return w; 
}

但我真的不想每次使用时都进行检查。我能做些什么更好的吗?

0