ThreadLocal在每一个线程中为变量创建一个独立的副本,各线程之间不相互影响
但是需要实现其initValue方法,每次为线程的值进行初始化操作。相当于利用空间换时间,没有同步获取锁的过程。
public static ThreadLocal<Number> value = new ThreadLocal<Number>() {
public Number initialValue(){//为每个线程保存的值进行初始化操作
return new Number();
}
};
网友评论