课程
/后端开发
/Java
/ThreadLocal
………………
2020-02-04
源自:ThreadLocal 2-5
正在回答
每个线程初始值都是0,之后每个线程独立计算,每个线程都是一个新得Val对象,从0开始计算,然后把计算得结果保存到自己得ThreadLocal中,互相不影响,之后从set中取出
initialValue起初始化作用只运行一次,每个Thread对应的Val对象的初始值确实都设为了0,没问题
举报
设计者视角源码级ThreadLocal分析教你建立线程安全感-你专属的技术优越感
1 回答有点疑惑,那个Val呗初试成0了, 为什么set还可以add值呢
1 回答如果重写Val的hashcode和equals是否会造成Set中Val覆盖?
1 回答add方法里count每次增长的值并没有设置回去,但实际count的值增长了
4 回答为什么set.add(v)是临界区
1 回答我用lombok的@Data注解代替手写的get/set时最终结果不正确