1.1.6 线程封闭之ThreadLocal和栈封闭

线程封闭

一个类里面,普通的变量命名的话,那就代表这个这个变量是所有线程共享的
那么如果这个类,有一个Thread,那么代表多个线程,都可以访问到这个变量
那么就产生了线程同步和线程封闭,两种不同处理

  • 线程同步
    这个变量对所有线程可见,一个线程修改了这个变量,另一个线程马上可以看到
  • 线程封闭
    每个线程都可以访问、修改到这个变量,但其实每个线程可以访问、修改到的,是这个变量的副本。

解决不同的问题

  • 线程同步
    解决的是多个线程对同一资源的抢夺
  • 线程封闭
    解决的是需要访问同一资源,但使用线程同步又会导致性能慢,当然前提是,这个资源不是唯一的,它可以每个线程有不同的值

ThreadLocal

ThreadLocal var = new ThreadLocal ();

栈封闭

栈封闭就是线程内的局部变量

你可能感兴趣的:(1.1.6 线程封闭之ThreadLocal和栈封闭)