Java中的AtomicLong是用来做什么的?

2022-09-01 00:38:41

有人能解释一下AtomicLong的用途吗?例如,以下语句有何区别?

private Long transactionId;
private AtomicLong transactionId;

答案 1

这两个对象之间存在显着差异,尽管最终结果是相同的,但它们肯定非常不同,并且在非常不同的情况下使用。

在以下情况下使用基本对象:Long

  • 您需要包装类
  • 您正在使用集合
  • 你只想处理对象而不是基元(这有点管用)

您使用以下时间:AtomicLong

  • 您必须保证该值可以在并发环境中使用
  • 您不需要包装器类(因为此类不会自动框)

Long本身不允许线程互操作,因为两个线程都可以看到并更新相同的值,但是使用 ,可以很好地保证多个线程将看到的值。AtomicLong

实际上,除非您费心使用线程,否则不需要使用 .AtomicLong


答案 2

推荐