多线程协作 CyclicBarrier 如何重复使用
有一个这种场景,教师管理3个小组,要各小组长收集小组内同学的成绩,然后汇总到教师那儿。
需要汇总3次,各个小组长也要收集3次。
并且每次汇集后要等教师检查后才汇总下一次成绩
现在汇总一次的时候是可以的,用cyclcbarrier来控制,
但是汇总完毕后,如何开始下一次汇总呢?
我试着用cyclebarrier的reset等方法 都失败了。
下面是测试片段,Group是小组长,他负责收集和提交信息。
汇总完毕后打印一个“汇总和阅读完毕”
那么我如何保证在这之后,再开始一次汇总?
final CyclicBarrier barrier = new CyclicBarrier(count, new Runnable() {
public void run() {
System.out.println("汇总并阅读完毕!");
}
});
for (int i = 0; i < 3; i++) {
Thread t=new Thread(new Group(i, barrier));
t.start();
}