【发布时间】:2016-07-22 03:11:23
【问题描述】:
使用 ThreadLocal 类编程时,字段是否应该声明为 final?
如果写private ThreadLocal<String> threadLocal之类的代码,稍后在构造函数中初始化它,由于变量threadLocal引用不能再改变,我猜它等于private final ThreadLocal<String> threadLocal;这个想法对吗?下面的方法在多方面有什么区别?线程类?
public class ThreadLocalTestForMultiThread{
private ThreadLocal<String> threadLocal;
public ThreadLocalTestForMultiThread(){
threadLocal = new ThreadLocal<String>();
}
}
public class ThreadLocalTestForMultiThread{
private final ThreadLocal<String> threadLocal;
public ThreadLocalTestForMultiThread(){
threadLocal = new ThreadLocal<String>();
}
}
【问题讨论】:
-
你的第二个例子甚至不应该编译。
-
@Codebender,是的,你是对的,没有太多考虑
-
既然你是新来的,不要忘记接受答案,只要它最有帮助。另请参阅meta.stackexchange.com/questions/5234/…。
标签: java multithreading thread-safety final thread-local