ThreadLocal是什么
顾名思义,指的是线程私有的变量,同一个对象,在不同线程中调用相同方法拿到的数据相互独立,我们先代码实验一下效果。
测试代码
public class ThreadLocalTest {
private static ThreadLocal<String> stringThreadLocal = new ThreadLocal<>();
public static void test() {
stringThreadLocal.set("initial");
long currentTid0 = Thread.currentThread().getId();
Logger.i("main thread currentId0: " + currentTid0 + ", stringThreadLocal: " + stringThreadLocal.get());
WorkerThread.getInstance().submit(()->{
long currentTid = Thread.currentThread().getId();
Logger.i("outer thread currentId: " + currentTid + ", stringThreadLocal: " + stringThreadLocal.get());
stringThreadLocal.set("thread: " + currentTid);
WorkerThread.getInstance().submit(()->{