📅  最后修改于: 2023-12-03 15:31:49.830000             🧑  作者: Mango
Java中的AtomicBoolean是一个在多线程环境下可以安全访问的布尔类型变量。AtomicBoolean类提供了许多方法来操作这个变量,其中一个重要的方法是getAndSet(),它可以在同一时间内获取当前值并设置一个新值。
Java中的AtomicBoolean是java.util.concurrent.atomic包中的一个类。它提供了以下几个重要的方法:
getAndSet()方法是AtomitBoolean类中比较常用的方法之一。它可以在同一时间内获取当前值并设置一个新值。方法的原型如下:
public final boolean getAndSet(boolean newValue)
使用这个方法时,会有一个原子性的操作。这个操作就是获取当前值和设置一个新值。这样就可以保证线程安全,防止多线程环境下的数据竞争。
下面是一个使用getAndSet()方法的示例代码:
import java.util.concurrent.atomic.AtomicBoolean;
public class AtomicBooleanExample {
private static AtomicBoolean atomicBool = new AtomicBoolean(true);
public static void main(String[] args) {
System.out.println("AtomicBoolean value initially is : " + atomicBool.get());
boolean previousValue = atomicBool.getAndSet(false);
System.out.println("Previous AtomicBoolean value : " + previousValue);
System.out.println("Current AtomicBoolean value is : " + atomicBool.get());
}
}
示例代码创建一个名称为AtomicBooleanExample的类。在main()方法中,我们定义了一个AtomicBoolean类型的变量atomicBool,并设置了初始值为true。在打印之前,使用get()方法获取并打印了当前值。之后,使用getAndSet()方法将atomicBool的值从true更改为false,并将旧值存储在旧变量previousValue中。最后,使用get()方法再次获取atomicBool的当前值并将其打印。
以下为示例代码的MD格式:
import java.util.concurrent.atomic.AtomicBoolean;
public class AtomicBooleanExample {
private static AtomicBoolean atomicBool = new AtomicBoolean(true);
public static void main(String[] args) {
System.out.println("AtomicBoolean value initially is : " + atomicBool.get());
boolean previousValue = atomicBool.getAndSet(false);
System.out.println("Previous AtomicBoolean value : " + previousValue);
System.out.println("Current AtomicBoolean value is : " + atomicBool.get());
}
}