三.线程间的通信

ThreadLocal的使用

  变量的值的共享可以使用public static 变量的形式,所有的线程都使用同一个static变量。

如果想实现每一个线程都有自己的共享变量该如何解决呢?JDk中提供的类是ThreadLocal正是解决这样的问题

   类Threadlocal主要解决的就是每个线程绑定自己的值。可以将Threadlocal类比喻成全局存放数据的盒子。

盒子中可以存储每个线程的私有数据。

  

get()与null

验证线程变量的隔离性

虽然3个线程都向对象tl中set()数据值,但每个线程还是能取出自己的数据。

解决get()返回null的问题

继承ThreadLocal类覆盖intialValue()方法具有的初始值。

 再次验证变量的隔离性

子线程和父线程各有各的值

类InheritableThreadLocal的使用

使用InheritableThreadLocal可以在子线程中取得父线程继承下来的值。

 

 

值继承再修改

原文地址:https://www.cnblogs.com/duan2/p/7739203.html