原子变量常见的使用场景

简介: 原子变量常见的使用场景

原子变量提供的如incrementAndGet()、compareAndSet()等方法保证了操作的原子性,可以避免使用锁,从而减少线程之间的竞争和上下文切换,提高性能。
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicIntegerExample {
public static void main(String[] args) {
AtomicInteger atomicInteger = new AtomicInteger(0);
// 以原子方式将当前值更新为新值
atomicInteger.set(20);
// 使用静态工具方法进行原子操作
int oldValue = atomicInteger.getAndAdd(5); // 将当前值增加5,并返回旧值
int newValue = atomicInteger.addAndGet(10); // 将当前值增加10,并返回新值
oldValue = atomicInteger.getAndIncrement(); // 将当前值增加1,并返回旧值
newValue = atomicInteger.incrementAndGet(); // 将当前值增加1,并返回新值
oldValue = atomicInteger.getAndSet(20); // 将当前值设置为20,并返回旧值
}
}

原子变量常见的使用场景:
1.计数器:在多线程环境中,如果你需要一个计数器来跟踪事件发生的次数,可以使用AtomicInteger或AtomicLong。
public class Counter {
private final AtomicInteger count = new AtomicInteger(0);

public void increment() {
    count.incrementAndGet();
}

public int getCount() {
    return count.get();
}

}

目录
相关文章
|
7月前
|
存储 Kubernetes NoSQL
无锁队列实现及使用场景
无锁队列实现及使用场景
|
4月前
|
安全 Java 调度
解锁Java并发编程高阶技能:深入剖析无锁CAS机制、揭秘魔法类Unsafe、精通原子包Atomic,打造高效并发应用
【8月更文挑战第4天】在Java并发编程中,无锁编程以高性能和低延迟应对高并发挑战。核心在于无锁CAS(Compare-And-Swap)机制,它基于硬件支持,确保原子性更新;Unsafe类提供底层内存操作,实现CAS;原子包java.util.concurrent.atomic封装了CAS操作,简化并发编程。通过`AtomicInteger`示例,展现了线程安全的自增操作,突显了这些技术在构建高效并发程序中的关键作用。
77 1
|
6月前
|
缓存 安全 Java
原子操作的实现原理
原子操作的实现原理
105 0
|
5月前
|
安全 Oracle Java
(四)深入理解Java并发编程之无锁CAS机制、魔法类Unsafe、原子包Atomic
其实在我们上一篇文章阐述Java并发编程中synchronized关键字原理的时候我们曾多次谈到过CAS这个概念,那么它究竟是什么?
128 1
|
SQL 缓存 安全
《JUC并发编程 - 高级篇》04 -共享模型之内存 (Java内存模型 | 可见性 | 有序性 )(下)
《JUC并发编程 - 高级篇》04 -共享模型之内存 (Java内存模型 | 可见性 | 有序性 )
《JUC并发编程 - 高级篇》04 -共享模型之内存 (Java内存模型 | 可见性 | 有序性 )(下)
|
缓存 安全 Java
《JUC并发编程 - 高级篇》04 -共享模型之内存 (Java内存模型 | 可见性 | 有序性 )(上)
《JUC并发编程 - 高级篇》04 -共享模型之内存 (Java内存模型 | 可见性 | 有序性 )
《JUC并发编程 - 高级篇》04 -共享模型之内存 (Java内存模型 | 可见性 | 有序性 )(上)
《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全(三)
《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全
《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全(三)
|
安全 容灾 Java
《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全(一)
《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全
《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全(一)
|
安全
【多线程: 变量的线程安全分析】
【多线程: 变量的线程安全分析】
150 0