有人可以解释一下 AtomicLong 的用途吗?例如,以下陈述有什么区别?
private Long transactionId;
private AtomicLong transactionId;
有重要的这两个对象之间的差异,虽然最终结果是相同的,但它们肯定有很大不同,并且在非常不同的情况下使用。
你用一个基本的Long
对象时:
- 你需要包装类
- 您正在处理一个集合
- 你只想处理对象而不是基元(这有点可行)
你使用一个AtomicLong
when:
- 你必须保证该值可以在并发环境中使用
- 您不需要包装类(因为此类不会自动装箱)
Long
其本身不允许线程互操作性,因为两个线程都可以看到并更新相同的值,但是使用AtomicLong
,对于多个线程将看到的值有相当不错的保证。
实际上,除非您曾经费心使用线程,否则您不需要使用AtomicLong
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)