📜  Java中的 AtomicBoolean get() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:43.793000             🧑  作者: Mango

Java中的 AtomicBoolean get() 方法及示例

简介

AtomicBoolean 类是 Java 并发包中的一个原子操作类,用于在高并发场景下对布尔类型数据进行原子操作。AtomicBoolean 提供了一系列的原子操作方法来保证线程安全。

其中,get() 方法用于获取当前 AtomicBoolean 对象的值。

语法
public boolean get()
返回值
  • true:如果当前 AtomicBoolean 对象的值为 true
  • false:如果当前 AtomicBoolean 对象的值为 false
示例

下面是一个示例,展示了如何使用 AtomicBooleanget() 方法:

import java.util.concurrent.atomic.AtomicBoolean;

public class AtomicBooleanExample {

    private static AtomicBoolean flag = new AtomicBoolean(false);

    public static void main(String[] args) {
        // 创建并启动线程1
        Thread thread1 = new Thread(() -> {
            System.out.println("线程1开始执行");
            // 如果 flag 的值为 true,则休眠 1 秒钟
            if (flag.get()) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            // 设置 flag 的值为 true
            flag.set(true);
            System.out.println("线程1执行结束");
        });

        // 创建并启动线程2
        Thread thread2 = new Thread(() -> {
            System.out.println("线程2开始执行");
            // 如果 flag 的值为 true,则输出提示信息
            if (flag.get()) {
                System.out.println("线程1已经执行完毕");
            }
            System.out.println("线程2执行结束");
        });

        thread1.start();
        thread2.start();
    }
}

在上面的示例中,我们创建一个名为 flagAtomicBoolean 对象,并将其初始值设置为 false。然后,我们创建两个线程 thread1thread2

线程 thread1 先执行,首先输出开始执行的提示信息。然后判断 flag 的值是否为 true,如果是,则休眠 1 秒钟,否则继续执行。最后将 flag 的值设置为 true,并输出执行结束的提示信息。

线程 thread2 紧接着执行,输出开始执行的提示信息,然后判断 flag 的值是否为 true,如果是,则输出线程1已经执行完毕的提示信息。最后输出执行结束的提示信息。

由于 AtomicBooleanget() 方法保证了线程安全,所以无论线程 thread1thread2 谁先执行,最终输出的结果都是一致的。

以上就是 Java 中的 AtomicBoolean get() 方法的使用示例。

注意: 代码中只是为了演示 get() 方法的使用,并没有展示 AtomicBoolean 的其他方法以及更复杂的应用场景。实际使用中,还需要根据具体需求来选择合适的方法进行操作。