线程封闭
一个类里面,普通的变量命名的话,那就代表这个这个变量是所有线程共享的
那么如果这个类,有一个Thread,那么代表多个线程,都可以访问到这个变量
那么就产生了线程同步和线程封闭,两种不同处理
- 线程同步
这个变量对所有线程可见,一个线程修改了这个变量,另一个线程马上可以看到 - 线程封闭
每个线程都可以访问、修改到这个变量,但其实每个线程可以访问、修改到的,是这个变量的副本。
解决不同的问题
- 线程同步
解决的是多个线程对同一资源的抢夺 - 线程封闭
解决的是需要访问同一资源,但使用线程同步又会导致性能慢,当然前提是,这个资源不是唯一的,它可以每个线程有不同的值
ThreadLocal
ThreadLocal<T> var = new ThreadLocal<T> ();
栈封闭
栈封闭就是线程内的局部变量