📅  最后修改于: 2023-12-03 14:42:43.793000             🧑  作者: Mango
get()
方法及示例AtomicBoolean
类是 Java 并发包中的一个原子操作类,用于在高并发场景下对布尔类型数据进行原子操作。AtomicBoolean
提供了一系列的原子操作方法来保证线程安全。
其中,get()
方法用于获取当前 AtomicBoolean
对象的值。
public boolean get()
true
:如果当前 AtomicBoolean
对象的值为 true
false
:如果当前 AtomicBoolean
对象的值为 false
下面是一个示例,展示了如何使用 AtomicBoolean
的 get()
方法:
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();
}
}
在上面的示例中,我们创建一个名为 flag
的 AtomicBoolean
对象,并将其初始值设置为 false
。然后,我们创建两个线程 thread1
和 thread2
。
线程 thread1
先执行,首先输出开始执行的提示信息。然后判断 flag
的值是否为 true
,如果是,则休眠 1 秒钟,否则继续执行。最后将 flag
的值设置为 true
,并输出执行结束的提示信息。
线程 thread2
紧接着执行,输出开始执行的提示信息,然后判断 flag
的值是否为 true
,如果是,则输出线程1已经执行完毕的提示信息。最后输出执行结束的提示信息。
由于 AtomicBoolean
的 get()
方法保证了线程安全,所以无论线程 thread1
和 thread2
谁先执行,最终输出的结果都是一致的。
以上就是 Java 中的 AtomicBoolean
get()
方法的使用示例。
注意: 代码中只是为了演示 get()
方法的使用,并没有展示 AtomicBoolean
的其他方法以及更复杂的应用场景。实际使用中,还需要根据具体需求来选择合适的方法进行操作。