CyclicBarrier计数器执行的是减1
来源:6-4 J.U.C之AQS-CyclicBarrier
![](http://img1.sycdn.imooc.com/user/54584ed2000152a202200220-100-100.jpg)
xuelang139
2018-11-25
执行的是减1操作,不是加1
//源码如下
int index = --count; //减1
if (index == 0) { // tripped
boolean ranAction = false;
try {
final Runnable command = barrierCommand;
if (command != null)
command.run();
ranAction = true;
nextGeneration();
return 0;
} finally {
if (!ranAction)
breakBarrier();
}
}
写回答
1回答
-
Jimin
2018-11-25
你好,aqs里的同步器基本都是通过减1来计数的,比如CountDownLatch,不知道你这个问题的点是什么。
022019-03-27
相似问题