我有一个设计为由单个线程访问的普通类,我想让它有thread-safe这么多线程可以同时使用一个实例。有一些类级别的方法和变量,我将它们设为静态并使用locks它们thread-safe。默认情况下,仅使用局部变量的方法也是安全的(每个线程都有它的堆栈)。
我properties对旧班级或更一般地任何non-static变量的疑问。我可以简单地使用ThreadLocal<T>并且每个线程都有自己的一组properties吗?我肯定会在里面使用locks和其他thread-safety问题setters(我认为getters是安全的)。
是ThreadLocal<T>性能杀手吗?