美文网首页Spring-学习笔记
ThreadLocal-线程局部变量

ThreadLocal-线程局部变量

作者: 夜空中最亮的星_3310 | 来源:发表于2018-03-07 01:19 被阅读0次

    ThreadLocal不是一个线程,而是保存线程本地化对象的容器。多线程环境中,使用ThreadLocal维护变量时,ThreadLocal为每个被维护的变量分配一个独立的变量副本。

        举个例子。例如下面的代码,对应静态变量num,如果不使用ThreadLocal来维护,那么,多线程环境下,最后的输出,如右侧所示。三个线程共享了num变量,num变量和三个线程相互影响。最后的输出,是1~9;

        再看下面的代码。同样是在多线程环境下,对同样的静态变量num,使用ThreadLocal进行维护后,每个线程,都可以分配到一个独立的副本。仔细分析最终输出,会发现,每个线程都得到1~3。也证明了,ThreadLocal为每个线程,维护了一个独立的副本。

    相关文章

      网友评论

        本文标题:ThreadLocal-线程局部变量

        本文链接:https://www.haomeiwen.com/subject/mmudfftx.html