MST

星途 面试题库

面试题:Java中AtomicInteger的常用方法及原理

请简述Java中AtomicInteger类有哪些常用方法,并简要说明这些方法是如何保证原子性操作的?
39.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

常用方法

  1. int get():获取当前值。
  2. void set(int newValue):设置为新值。
  3. int incrementAndGet():以原子方式将当前值加1,然后返回新值。
  4. int getAndIncrement():以原子方式将当前值加1,返回旧值。
  5. int decrementAndGet():以原子方式将当前值减1,然后返回新值。
  6. int getAndDecrement():以原子方式将当前值减1,返回旧值。
  7. int addAndGet(int delta):以原子方式将给定值与当前值相加,然后返回新值。
  8. int getAndAdd(int delta):以原子方式将给定值与当前值相加,返回旧值。
  9. boolean compareAndSet(int expect, int update):如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。

原子性操作保证

AtomicInteger类通过使用Unsafe类提供的CAS(Compare and Swap)操作来保证原子性。CAS操作是一种硬件级别的原子操作,它会比较内存中的值与预期值,如果相等则更新为新值,否则不做任何操作。这种操作在硬件层面是原子的,从而避免了多线程环境下数据竞争问题,保证了操作的原子性。