程序猿阵线联盟-汇总各类技术干货Java学习笔记技术干货

『Java并发编程』ThreadLocal的使用

2018-03-23  本文已影响80人  dejunz

ThreadLocal是Java并发编程中的常用类,可以解决多个线程共享变量问题,这是不同于“synchronized”的解决方法。

ThreadLocal介绍

ThreadLocal在每个线程中维护一个映射MAP,每个线程都单独有一个变量的副本,实现线程间变量隔离。
在并发编程中,我们可能会遇到多个线程使用同一变量的情境。比如T1,T2,两个线程,T1在操作某对象时T2也同时操作该对象,造成数据混乱,结果与预期不符。对于这种情况常用做法是对操作对象进行同步处理(synchronized),但是同步操作会降低执行效率。ThreadLocal提供了另一种方式来解决并发问题,每个线程都操作同一个变量的副本,不影响其他线程中该变量的值。

ThreadLocal常用方法

ThreadLocal类主要有get()set(T value)remove()initialValue()几个方法,结构简单清晰。

//创建ThreadLocal时重写initialValue()方法
public class TestThreadLocal {
    private static final ThreadLocal<String> value = new ThreadLocal<String>() {
        @Override
        protected String initialValue() {
            return "Djz";
        }
    };
}

ThreadLocal总结


文章内容为个人理解,如有错误欢迎指出。

邮箱:CodingDjz@126.com

上一篇 下一篇

猜你喜欢

热点阅读