/** * Created by mhc on 2017-03-15. */ public class TestThreadLocal { private static final ThreadLocal threadLocal = new ThreadLocal(){ @Override protected Object initialValue() { return "this is a empty object"; } }; public void add(){ threadLocal.set("hello, add a baby"); } public Object get(){ return threadLocal.get(); } public static void main(String args[]){ final TestThreadLocal testThreadLocal = new TestThreadLocal(); Thread thread1= new Thread(){ @Override public void run() { testThreadLocal.add(); } }; Thread thread2= new Thread(){ @Override public void run() { String baby = (String) testThreadLocal.get(); System.out.println("baby==="+baby); } }; thread1.start(); thread2.start(); } }
public class ThreadLocal<T> extends Object
该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。