【潘森教育】ThreadLocal 的工作原理

【潘森教育】ThreadLocal 的工作原理

先看看示例 1 中的情况

我们可以看到多个线程可以同时访问公共资源 count,当某个线程在执行 count++ 的时候,可能其他的线程正好同时也执行 count++。但由于多个线程变量 count 的不可见性,会导致另外的线程拿到旧的 count 值 + 1,这样就出现了 realCount 预计是 20,但是实际上是 18 的数据问题。

再看看示例 2 中的情况:

如图所示,往大的方向上说,ThreadLocal 会给每一个线程都创建变量的副本,保证每个线程访问都是自己的副本,相互隔离。

往小的方向上说,每个线程内部都有一个 threadLocalMap,每个 threadLocalMap 里面都包含了一个 entry 数组,而 entry 是由 threadLocal 和数据(这里指的是 count)组成的。这样一来,每个线程都拥有自己专属的变量 count。示例 2 中线程 1 调用 calc 方法时,会先调用的 getCount 方法,由于第一次调用 threadLocal.get() 返回是空的,所以 getCount 返回值是 0。这样 threadLocal.set (getCount () + 1); 就变成了 threadLocal.set (0 + 1); 它会给线程 1 中 threadLocal 的数据值设置成 1。线程 2 再调用 calc 方法,同样会先调用 getCount 方法,由于第一次调用 threadLocal.get () 返回是空的,所以 getCount 返回值也是 0。这样 threadLocal.set (getCount () + 1); 会给线程 2 中 threadLocal 的数据值也设置成 1。。。。。。最后每个线程的 threadLocal 中的数据值都是 1。

特别声明:[【潘森教育】ThreadLocal 的工作原理] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

2025具身智能的落地性以杰克股份与纺织服装场景为例(智能制造2025的重点领域有哪些)

随着劳动力短缺与成本攀升的双重压力日益凸显,以具身智能为核心的自动化技术正成为破局的重要力量,而杰克股份等企业的探索,正让"无人纺织厂"的愿景逐渐照进现实。在裁剪环节,智能铺布机和裁床已实现90%的自动化

2025具身智能的落地性以杰克股份与纺织服装场景为例(智能制造2025的重点领域有哪些)

OMR真空压差披覆机生产流程(真空压差阀工作原理图)

真空压差披覆技术是利用加热、真空、高压气体来实现产品表面包覆或转印,可实现更高品质外观效果的3D表面装饰工艺,可以将膜片紧致地贴合在产品表面。 OMR设备工艺是通过利用真空与大气压,将带有粘着层的膜材加热后…

OMR真空压差披覆机生产流程(真空压差阀工作原理图)

来亦庄还能这么逛?两条线路带您打卡2025世界机器人大会(亦庄能离京吗)

路线紧扣“未来视界”与“智慧生态”两大核心主题,为专程来亦庄感受科技魅力的市民朋友们,打造一场集尖端科技体验与生态文化探索于一体的独特旅程,让大家在逛展之余,深度解锁亦庄的科技底蕴与人文活力。 此次限定路线中…

来亦庄还能这么逛?两条线路带您打卡2025世界机器人大会(亦庄能离京吗)

她是西游记最“贵”女演员,剧组花五万拍三分钟!一句台词没说(你是西游记里的哪个女妖精)

更绝的是,这位黄梅戏大腕连句台词都没有,却成了观众念念不忘的经典。剧组派来的直升机在机场轰隆作响,螺旋桨刮起的风把她头饰上的珠串吹得噼里啪啦乱飞——就为了赶去云南拍个抛绣球的镜头!直到十年后西游记重播,她才在…

她是西游记最“贵”女演员,剧组花五万拍三分钟!一句台词没说(你是西游记里的哪个女妖精)

原来不是演的!这位演员竟然是真的“国际反恐专家”,这位著名老戏骨,隐藏好深!(原来不是原来)

有人说他是“最不像演员的演员”,也有人说他是“反恐专家里最会演戏的那一个”。他说过一句话:“其实我最喜欢的,就是拆东西。”那地方,联合国都说危险,高温、沙尘暴、地雷……他没发一条朋友圈,回来只说:“能让战士少…

原来不是演的!这位演员竟然是真的“国际反恐专家”,这位著名老戏骨,隐藏好深!(原来不是原来)