为了账号安全,请及时绑定邮箱和手机立即绑定

ThreadLocal

求老仙 架构师
难度初级
时长 1小时40分
学习人数
综合评分9.73
27人评价 查看评价
9.8 内容实用
9.7 简洁易懂
9.7 逻辑清晰
感觉quartz这个例子没讲到点子上啊,其实是因为如果不加对自身thread的判断,下面wait就可能造成死锁,即自己拿着锁还wait锁的所有者来notify,类似于实现ReentrantLock可重入锁的机制
我真的很想知道老师是不是山东人,这一口的说教味。。
不太理解为什么线程1 setLastError为什么线程2会认为程序出错了。
单独多次执行 /stat 方法; 返回值也会产生变化.
set.stream().map(x -> x.getV()).reduce((sum, x) -> sum + x);
是不是因为这段代码里面的 x.getV() 方法改变了返回值
真的是很好的课程!

最赞回答 / sixGod
static修饰的变量是放在方法区中的,JVM不会回收方法区中的对象,由于hashMap不会被回收,而hashMap中又一直在用着MythreadLocal对象,所以导致MythreadLocal不会被回收
这里貌似讲错了,obtainLockwhile循环是其它线程释放锁之后它被唤醒,然后再次判断是否需要执行wait,并不是一直在这里while循环
CPU的执行单元时线程
讲的真好!
如果使用 synchronize 确实可以解决数据一致性问题 但是会影响性能 如果并发访问量过高 造成排队操作,甚至程序挂掉

使用ThreadLocal既可以解决数据一致性问题,还可以保证效率,因为ThreadLocal线程是单独的,唯一需要考虑的只是如何从多个ThreadLocal中收集数据
超喜欢老师的表达:清晰流畅,声音确实也不错,怀疑学过播音
听了好几遍听懂了,幸亏老师嗓音跟我差不多好听,不然。。。。
首页上一页1234567下一页尾页
课程须知
1、对多线程、并发概念有一定了解 2、熟悉Java基本语法
老师告诉你能学到什么?
1、课程的主旨不是讲死的概念,而是尽我所能的引发大家的思考,由现象观察思考逐渐接近事物的本质。 2、不仅理解ThreadLocal是什么?怎么用?何时用? 3、从设计者的角度去思考,大神们在怎么用,我应该怎样用?——思考更多的为什么?为何而存在,为何要这样设计。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消