金三银四精选java面试题-ThreadLocal是什么?

发布时间:2024-01-01 19:15:06
 

ThreadLocal是什么?

ThreadLocal也就是线程本地变量。如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。

ThreadLocal是整个线程的全局变量,不是整个程序的全局变量。

/**
 * ThreadLocal
 * 创建人:百里
 */
public class BaiLiThreadLocalDemo {
    //创建一个静态的threadLocal变量,被所有线程共享
    static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();

    public static void main(string[] args) throws InterruptedException {
        Thread thread1 = new Thread(() -> {
            System.out.println(threadLocal.get());
            threadLocal.set(0);
            System.out.println(threadLocal.get());
        },"Thread-1");

        Thread thread2 = new Thread(() -> {
            System.out.println(threadLocal.get());
            threadLocal.set(1);
            System.out.println(threadLocal.get());
        },"Thread-2");

        thread1.start();
        thread1.join();
        thread2.start();
        thread2.join();
    }
}

 


 
上一篇 金三银四精选java面试题-线程间有哪些通信方式?
下一篇 金三银四精选java面试题-ThreadLocal内存泄露是怎么回事?

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题