线程封闭ThreadLocal

# 线程封闭 ![image.png](https://cos.easydoc.net/31477061/files/km1p644a.png) ![image.png](https://cos.easydoc.net/31477061/files/km1p7gt0.png) ## 代码 ``` package smm.test.app.multiplesystems.lifter1; import java.util.concurrent.locks.LockSupport; public class test { public static void main(String[] args) { try { threadLocalTest(); } catch (Exception e) { e.printStackTrace(); } } /** threadLocal变量,每个线程都有一个副本,互不干扰 */ public static ThreadLocal<String> value = new ThreadLocal<>(); /** * threadlocal测试 * * @throws Exception */ public static void threadLocalTest() throws Exception { // threadlocal线程封闭示例 value.set("123"); // 主线程设置值 System.out.println(value.get()); // 取主值 1 new Thread(new Runnable() { @Override public void run() { System.out.println(value.get()); //取子值 2 value.set("456"); // 子线程设置值 System.out.println(value.get()); // 取子值 3 } }).start(); Thread.sleep(5000L); // 等待所有线程执行结束 System.out.println(value.get()); // 取主值 4 } } ``` ![image.png](https://cos.easydoc.net/31477061/files/km1pm3ej.png) ![image.png](https://cos.easydoc.net/31477061/files/km1ptdf4.png)