ThreadLocal--保证线程变量安全的另外一种方法

根据JDK文档中的解释:ThreadLocal的作用是提供线程内的局部变量,这种变量在多线程环境下访问时能够保证各个线程里变量的独立性。

从这里可以看出,引入ThreadLocal的初衷是为了提供线程内的局部变量,而不是为了解决共享对象的多线程访问问题。实际上,ThreadLocal根本就不能解决共享对象的多线程访问问题。

ThreadLocal--保证线程变量安全的另外一种方法_第1张图片
ThreadLocal--保证线程变量安全的另外一种方法_第2张图片
ThreadLocal--保证线程变量安全的另外一种方法_第3张图片
ThreadLocal--保证线程变量安全的另外一种方法_第4张图片

说在什么时候用到就是在spring中,绝大部分Bean都可以声明为singleton作用域,singleton作用域的意思就是单例模式,且默认是饿汉模式,下面所说.

ThreadLocal--保证线程变量安全的另外一种方法_第5张图片

总之,就是因为Spring对一些Bean中非线程安全状态采用ThreadLocal进行处理,来保证线程安全.

你可能感兴趣的:(ThreadLocal--保证线程变量安全的另外一种方法)