ThreadLocal 原理分析

2019-08-23  本文已影响0人  七月_JulyFY
ThreadLocal提供了线程本地变量 访问到的变量属于当前线程, 每一个线程的变量都是不同的, 每一个线程都保存有一个变量副本。
ThreadLocal相当于提供了线程隔离 将变量与线程绑定

ThreadLocal本地线程变量的理解:
一般的Web应用划分为展现层、服务层和持久层三个层次,在不同的层中编写对应的逻辑,下层通过接口向上层开放功能调用。在一般情况下,从接收请求到返回响应所经过的所有程序调用都同属于一个线程。也就是说,同一线程贯通N层,不同的线程可能由于参数等不同会对程序中的某些变量进行修改,但是又要防止修改后的值对其它线程产生影响,因为不同的线程可以同时运行滴,这就需要我们解决对某些线程共享的变量的访问冲突问题。ThreadLocal本地线程变量就是一种解决方式,它通过将程序中不安全的变量封装进ThreadLocal中,这相当于为每一个线程提供一个独立的变量副本(其实是不同的对象),线程修改变量的值对其它线程来说没影响了,因为其它线程有自己的一个副本信息。
上一篇 下一篇

猜你喜欢

热点阅读