Skip to content

Commit dd8aa00

Browse files
committed
多线程环境下,保证仅且只执行一次
1 parent 6de8add commit dd8aa00

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

java87/src/main/java/multi_threads/Test.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@ public static void main(String[] args) {
2727
}
2828
}
2929

30-
System.out.println();
31-
System.out.println("count: " + RWThread.count);
30+
if (RWThread.count.get() != 1) {
31+
throw new IllegalStateException();
32+
} else {
33+
System.out.println();
34+
System.out.println("count: " + RWThread.count);
35+
}
3236

3337

3438
}

java87/src/main/java/multi_threads/atomic_start_once/RWThread.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public class RWThread extends Thread {
1313
@Override
1414
public void run() {
1515

16+
System.out.println("Thread ID: " + Thread.currentThread().getId());
17+
1618
// 多线程环境下,保证仅且只执行一次
1719
if (!ab.compareAndSet(false, true)) {
1820
return;

0 commit comments

Comments
 (0)