package org.example.atomicBoolean;
import java.util.concurrent.atomic.AtomicBoolean;
public class Main {
public static void main(String[] args) {
Task task = new Task();
for (int i = 0; i < 10; i++) {
new Thread(task::run).start();
}
}
private static class Task implements Runnable {
private AtomicBoolean done = new AtomicBoolean();
@Override
public void run() {
if (!done.compareAndSet(false, true)) {
return;
}
System.out.println("run");
}
}
}
/*
分为2步:
if(done.get()){
return;
}
done.set(true);
run
run
原子操作:
if (!done.compareAndSet(false, true)) { // 如果等于期待值,则设置成功
return;
}
run
*/
AtomicBoolean的使用
最新推荐文章于 2024-01-09 22:00:27 发布