1. 程式人生 > 實用技巧 >ThreadLocal類原理及測試用例

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); //當前執行緒物件繫結的值:蕪湖 } }