欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多线程系列八-ThreadLocal

程序员文章站 2024-03-25 23:51:04
...

ThreadLocal

用于实现每个线程都有自己的共享变量。即隔离线程中的变量。

示例

public class ThreadLocalTest {
    private static ThreadLocal threadLocal = new ThreadLocal();

    private static class MythreadA extends Thread {
        private Object object;


        @Override
        public void run() {
            threadLocal.set(this.getName());
            System.out.println(threadLocal.get());
        }
    }
    public static void main(String[] args) throws InterruptedException {
        MythreadA thread1=new MythreadA();

        MythreadA thread2=new MythreadA();
        thread1.start();
        thread2.start();

    }
}
输出:

Thread-0
Thread-1

注:默认返回null。
若不想默认返回null,可以创建自己的ThreadLocal,然后重写initialValue方法

InheritableThreadLocal

可以在子线程中取得父线程继承下来的值。