前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每个线程对自己的Cell变量的value

每个线程对自己的Cell变量的value

原创
作者头像
用户7737280
发布2021-12-02 17:26:21
3210
发布2021-12-02 17:26:21
举报

可能你会觉得,线程 t2 不就是要将"A"改为"C"嘛,虽然中间变化了,但对 t2 也没影响呀比如:你的银行卡里有10w,中间你领了工资1w,然后,又被扣除还了房贷1w,此时,你的银行卡里还是10w。遴选公务员虽然结果没变,但余额已经不是原来的余额了。而且,你一定在意中间你的钱去哪里了,所以是不一样的。中间的记账明细,其实我们是关心的,因为这个时候你已经犯法了。http://lx.gongxuanwang.com/

带时间戳的原子引用:Java提供了AtomicStampedReference来解决ABA问题。其实其实就是加了版本号,每一次的修改,版本号都 +1。比对的是 内存值 + 版本号 是否一致。代码示例:解决ABA问题

有且只有一个线程执行成功,其他线程都会失败,不断重试(自旋),自旋会成为瓶颈。而LongAdder的思想就是把要操作的目标资源[分散]到数组Cell中,遴选公务员每个线程对自己的Cell变量的value进行原子操作,大大降低了失败的次数。这就是为什么在高并发场景下,推荐使用LongAdder的原因。http://www.gongxuanwang.com/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档