如何在Java中初始化ThreadLocal对象
- 论坛
- 如何在Java中初始化ThreadLocal对象
17 浏览
如何在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; }
但我真的不想每次使用时都进行检查。我能做些什么更好的吗?