ThreadLocal类原理及测试用例
main线程类:
public class DemoThreadLocal { public static void main(String[] args) { ThreadLocal<String> tl = new ThreadLocal<>(); //获取当前main线程对象绑定的值 String s = tl.get(); System.out.println(s); //null //给当前main线程对象绑定值 tl.set("hello ThreadLocal"); String s1 = tl.get(); System.out.println(s1); //hello ThreadLocal //开启一个新线程 SubThread subThread = new SubThread(tl); subThread.start(); } }
subThread线程类:
public class SubThread extends Thread { private ThreadLocal<String> tl; public SubThread(ThreadLocal tl){ this.tl = tl; } @Override public void run() { //获取当前线程对象上绑定的值 String s = tl.get(); System.out.println("当前线程对象绑定的值:"+s); //当前线程对象绑定的值:null tl.set("芜湖"); String s1 = tl.get(); System.out.println("当前线程对象绑定的值:"+s1); //当前线程对象绑定的值:芜湖 } }
学习的博客多用于在笔记中,防止笔记过于臃肿,所以将样例及运行结果放在博客中,后以超链接的形式记录在笔记中,所以有些博文过于单薄。如果有小伙伴遇到问题欢迎评论,看到就会回复,学渣一枚,加油努力。