threadlocal
用statc修饰threadlocal对象, 说明是所有线程可共享的, 如果是初始化后,每个线程可以从这个对象中取出自己的threadlocal空间, 对吧? 所以并不是所有线程共用一个threadlocal吧。 ?只是共同调用了这个对象, 然后通过这个对象得到了自己想要的threadlocal中的数据。可以理解为threadlocal对象是一个钥匙, 每个线程进入后可以找到自己的房间。 取出东西。
26
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕小班
2021-06-20 19:30:42
同学你好,1、ThreadLocal并不是为了解决共享对象的多线程安全问题,而是为了避免通多参数传递的方式去拿到一个对象。
2、ThreadLocal是使得各线程能够保持各自独立的一个对象,而实现原理其实是通过,每个线程都会重新创建一个对象,所以对于各自线程创建的对象来说,它是安全的,独有的。
3、但是在使用线程池复用线程来实现时,不同的请求,由同一个线程做处理,此时就会有数据污染的情况了(线程安全问题),一些特定的业务逻辑下就很有可能出错,或者说是重复。
所以说ThreadLocal并不是完美的,并不能解决共享对象的多线程安全问题。
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星