单例模式中,对于某个成员变量,如果需要每个线程独占一份副本,可以使用ThreadLocal进行修饰。
例如在spring中,bean的默认作用域为SINGLTON,即单例。如果单例的bean中有实例变量,则此变量是线程不安全的。一个解决办法就是用ThreadLocal来修饰。
应用代码
public class SingleClass {
// ThreadLocal存储的变量类型可以使用泛型指定,不指定时默认为Object
// 以下代码等同于public static ThreadLocal