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

📅  最后修改于: 2023-12-03 15:31:49.844000             🧑  作者: Mango

Java中的AtomicBoolean set()方法介绍

Java中的AtomicBoolean类表示一个可以原子性地更新的布尔类型变量,可以避免并发操作的问题,提高程序的并发执行效率。AtomicBoolean类提供了许多方法来实现原子性操作,其中set()方法用于将AtomicBoolean的当前值设置为指定的值。

语法

set(boolean newValue)

该方法将AtomicBoolean对象的值设置为指定的布尔值newValue。

参数

newValue:指定设置的布尔值。

返回值

无。

示例

下面是一个使用set()方法的示例,它演示了如何使用AtomicBoolean类来处理并发线程访问的问题。

import java.util.concurrent.atomic.AtomicBoolean;
 
public class AtomicBooleanExample {
 
  public static void main(String[] args) {
  
    AtomicBoolean flag = new AtomicBoolean(false);
 
    // 创建线程1,将AtomicBoolean的值设置为true
    Thread thread1 = new Thread(() -> {
      flag.set(true);
    });
 
    // 创建线程2,当AtomicBoolean的值为true时退出循环
    Thread thread2 = new Thread(() -> {
      while (!flag.get()) {
        // do something
      }
    });
 
    // 启动线程
    thread1.start();
    thread2.start();
 
    // 等待线程结束
    try {
      thread1.join();
      thread2.join();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
 
  }
}

在这个示例中,我们使用AtomicBoolean类来创建一个标记(flag)。线程1将标记设置为true,线程2检查标记是否为true时,如果不是就执行某些操作。

需要注意的是,使用这种方式进行同步,比使用synchronized或volatile的效率更高。AtomicBoolean适用于那些写少读多的情况,是一种非常好的并发编程解决方案。