封装类
ThreadLocalClient.java
package com.wzq.demoftl.thread.threadLocal;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ThreadLocalClient {
private static ThreadLocal<Map<String,String>> threadLocal = ThreadLocal.withInitial(() -> {
System.out.println("get 为空 初始化!");
return new ConcurrentHashMap<>();
});
public static void set(String key, String value){
threadLocal.get().put(key, value);
}
public static String get(String key){
return threadLocal.get().get(key);
}
}
使用
package com.wzq.demoftl.thread.threadLocal;
import java.util.HashMap;
import java.util.Map;
public class ThreadLocalMain {
public static void main(String[] args) {
Thread t1 = new Thread(() -> {
ThreadLocalClient.set("user","你好!1");
System.out.println(ThreadLocalClient.get("user"));
});
Thread t2 = new Thread(() -> {
ThreadLocalClient.set("user","你好!2");
try {
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(ThreadLocalClient.get("user"));
});
t1.start();
t2.start();
}
}