温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java多线程中如何使用原子操作

发布时间:2025-02-26 22:11:03 阅读:97 作者:小樊 栏目:编程语言
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Java多线程编程中,原子操作是指不可被中断的一个或一系列操作。这些操作在执行过程中不会被其他线程干扰,从而确保数据的一致性和安全性。Java提供了java.util.concurrent.atomic包来支持原子操作。以下是一些常用的原子类和它们的用法:

  1. AtomicInteger:用于原子操作的整数。常用方法有getAndIncrement()getAndDecrement()compareAndSet()等。
import java.util.concurrent.atomic.AtomicInteger;

public class AtomicDemo {
    private static AtomicInteger counter = new AtomicInteger(0);

    public static void main(String[] args) throws InterruptedException {
        Runnable runnable = () -> {
            for (int i = 0; i < 1000; i++) {
                counter.getAndIncrement();
            }
        };

        Thread t1 = new Thread(runnable);
        Thread t2 = new Thread(runnable);
        t1.start();
        t2.start();
        t1.join();
        t2.join();

        System.out.println("Counter: " + counter.get()); // 输出:Counter: 2000
    }
}
  1. AtomicLong:用于原子操作的长整数。常用方法与AtomicInteger类似。

  2. AtomicBoolean:用于原子操作的布尔值。常用方法有getAndSet()compareAndSet()等。

  3. AtomicReference:用于原子操作的引用类型。常用方法有getAndSet()compareAndSet()等。

  4. AtomicIntegerFieldUpdaterAtomicLongFieldUpdaterAtomicReferenceFieldUpdater:这些类用于原子操作类的字段。它们需要一个目标对象和字段名作为参数,并提供原子更新指定字段的方法。

  5. LongAdderDoubleAdder:这些类适用于高并发场景下的累加操作。它们的性能比AtomicLongAtomicDouble更好,因为它们将累加操作分散到多个单元中,减少了线程竞争。

import java.util.concurrent.atomic.LongAdder;

public class LongAdderDemo {
    private static LongAdder counter = new LongAdder();

    public static void main(String[] args) throws InterruptedException {
        Runnable runnable = () -> {
            for (int i = 0; i < 1000; i++) {
                counter.increment();
            }
        };

        Thread t1 = new Thread(runnable);
        Thread t2 = new Thread(runnable);
        t1.start();
        t2.start();
        t1.join();
        t2.join();

        System.out.println("Counter: " + counter.sum()); // 输出:Counter: 2000
    }
}

使用这些原子类和方法,可以确保在多线程环境下进行安全的原子操作。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×