这个类的用处可以简单说明如下:在类X中,包含public static ThreadLocal local = new ThreadLocal();然后在X.methodA()中调用了local.set(objA),然后可以在X的其它方法或者其它类中都可以调用X.local.get()返回这个objA ThreadLocal比直接使用static更好的地方在于:线程A调用了local.set(objA),然后线程B调用了local.set(objB) 在线程A中再调用local.get()返回的是objA而不会是objB,线程B中会返回objB 这个类最常用的地方就是,X.methodA中将objA保存到local中,然后X.methodA继续调用其它方法,但是由于各种原因,不方便将objA一层层的传递到这些方法中,但是在Y.methodB中可能需要这个objA,就可以直接调用local.get()了
谢谢,那使用它的好处呢?我看见好多地方用它来封装static变量,这样做的意义是什么?
ThreadLocal比直接使用static更好的地方在于:线程A调用了local.set(objA),然后线程B调用了local.set(objB)
在线程A中再调用local.get()返回的是objA而不会是objB,线程B中会返回objB
这个类最常用的地方就是,X.methodA中将objA保存到local中,然后X.methodA继续调用其它方法,但是由于各种原因,不方便将objA一层层的传递到这些方法中,但是在Y.methodB中可能需要这个objA,就可以直接调用local.get()了