通俗易懂讲解ThreadLocal,不懂的过来打我

先举个例子,ThreadLocal是啥呢?在一个线程的情况下,threadlocal就相当于一个仓库,很简单,就是一个保存值的局部变量,通过set get 方法来从这个仓库中存储和获取。 但是在多个线程的情况下,就很不一样了,threadlocal就变成了孙悟空,对,你没看错,变成了孙悟空,为啥是孙悟空呢?因为孙悟空会分身术,会将自己变成多个孙悟空,而且变出来的每个孙悟空都各自具有各自的思想,是完全独立的,这个多个孙悟空之间不存在任何的联系。有多少个线程就有多少个孙悟空,每个线程里的孙悟空虽然名字都叫做孙悟空,但是他们之间没有任何的联系!!!

在这里插入图片描述在这里插入图片描述在这里插入图片描述

代码演示

在这里插入图片描述在这里插入图片描述
此时content局部变量还没有用到threadlocal
则打印的结果可能会发生错乱,如下图所示
在这里插入图片描述在这里插入图片描述

再次打印,结果就不会发生错乱了
在这里插入图片描述

重点来啦

在这里插入图片描述

synchronized是只有一份资源,多个人抢着来用,因此加锁,排队!比如多个人要去上厕所,但只有一个坑,因此每次只能一个人去上

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值