原子变量常见的使用场景

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

原子变量提供的如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();
}
AI 代码解读

}

目录
打赏
0
3
3
0
226
分享
相关文章
|
4月前
三种线程的使用场景
三种创建多线程的使用场景 1、继承的方式:适合于这个任务只想被一个线程的对象执行的情况 2、实现Runnable接口方式:适合于一个任务想被多个线程执行的情况 3、实现Callable接口方式:也适合一个任务想被多个线程执行的情况,你还想得倒任务的执行结果
40 0
Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
114 1
Java面试题:如何在不牺牲性能的前提下,实现一个线程安全的单例模式?如何在生产者-消费者模式中平衡生产和消费的速度?Java内存模型规定了变量在内存中的存储和线程间的交互规则
Java面试题:如何在不牺牲性能的前提下,实现一个线程安全的单例模式?如何在生产者-消费者模式中平衡生产和消费的速度?Java内存模型规定了变量在内存中的存储和线程间的交互规则
75 0
Java面试题:设计一个线程安全的内存管理器,使用观察者模式来通知所有线程内存使用情况的变化。如何确保在添加和移除内存块时的线程安全?如何确保任务的顺序执行和调度器的线程安全?
Java面试题:设计一个线程安全的内存管理器,使用观察者模式来通知所有线程内存使用情况的变化。如何确保在添加和移除内存块时的线程安全?如何确保任务的顺序执行和调度器的线程安全?
74 0
HashMap在多线程使用场景下会存在线程安全问题,怎么处理?
HashMap在多线程使用场景下会存在线程安全问题,怎么处理?
212 0
【多线程: 变量的线程安全分析】
【多线程: 变量的线程安全分析】
163 0
线程安全原理简析及HashMap多线程并发5种场景异常分析(3)
线程安全原理简析及HashMap多线程并发5种场景异常分析(3)
335 0
线程安全原理简析及HashMap多线程并发5种场景异常分析(3)
Juc11_Java内存模型之JMM、八大原子操作、三大特性、读写过程、happens-before(二)
③. JVMM规范下,三大特性 ①. 可见性 ②. 原子性 ③. 有序性 ④. JVMM规范下,多线程对变量的读写过程
176 0
Juc11_Java内存模型之JMM、八大原子操作、三大特性、读写过程、happens-before(二)