需求
对变量并发执行10000次相加
示例1:裸奔
执行1:
90069
执行2:
90126
每次执行不一样。原因:xx++ 等价于xx = xx+1,非原子操作,并行执行的2个会把结果冲掉
示例2:加锁
执行:
每次都是:100000
示例3:使用atomic
atomic
包提供了底层的原子级内存操作
执行:
每次都是:100000
其他atomic 操作参考
对变量并发执行10000次相加
执行1:
90069
执行2:
90126
每次执行不一样。原因:xx++ 等价于xx = xx+1,非原子操作,并行执行的2个会把结果冲掉
执行:
每次都是:100000
atomic
包提供了底层的原子级内存操作
执行:
每次都是:100000
其他atomic 操作参考
上一篇:java split()
下一篇:Java 进制转换
1. 什么是原子操作 我们已经知道,原子操作即是进行过程中不能被中断的操作。也就是说,针对某个值的原子操作
atomic是最轻量级的锁,在一些场景下直接使用atomic包还是很有效的。下面内容摘秒自《G
go语言提供的原子操作都是非侵入式的,它们由标准库代码包sync/atomic中的众多函数代表。 我们调用sync/ato和交换它们提供了不同的功能,切使用的场景也...
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M