CountDownLatch用来同步一个或多个 任务,强制他们等待由其他任务执行的一组操作完成。
用法:
给CountDownLatch对象设置一个初值,任何在这个对象上调用await()的方法都将阻塞,等待这个计数值为0,
可以由其他线程在这个对象调用countDown()来减少这个计数值,计数值不能被重置。
countDown()不会造成阻塞。
示例:
Launched all tasks
43 completed
98 completed
37 completed
96 completed
94 completed
11 completed
21 completed
77 completed
6 completed
9 completed
75 completed
79 completed
10 completed
40 completed
95 completed
64 completed
23 completed
34 completed
29 completed
38 completed
55 completed
90 completed
88 completed
28 completed
4 completed
50 completed
8 completed
12 completed
0 completed
27 completed
99 completed
13 completed
72 completed
71 completed
45 completed
2 completed
91 completed
31 completed
14 completed
17 completed
7 completed
97 completed
35 completed
69 completed
20 completed
32 completed
5 completed
68 completed
36 completed
47 completed
87 completed
70 completed
84 completed
86 completed
66 completed
54 completed
42 completed
41 completed
46 completed
74 completed
57 completed
65 completed
80 completed
1 completed
19 completed
59 completed
15 completed
89 completed
51 completed
25 completed
53 completed
62 completed
58 completed
92 completed
76 completed
22 completed
56 completed
18 completed
85 completed
61 completed
30 completed
60 completed
67 completed
24 completed
26 completed
48 completed
39 completed
33 completed
52 completed
3 completed
93 completed
81 completed
78 completed
73 completed
44 completed
83 completed
49 completed
63 completed
82 completed
16 completed
Latch barrier passed for WaitingTask 0
Latch barrier passed for WaitingTask 6
Latch barrier passed for WaitingTask 5
Latch barrier passed for WaitingTask 4
Latch barrier passed for WaitingTask 1
Latch barrier passed for WaitingTask 3
Latch barrier passed for WaitingTask 2
Latch barrier passed for WaitingTask 7
Latch barrier passed for WaitingTask 8
Latch barrier passed for WaitingTask 9