gpt4 book ai didi

java - new CyclicBarrier(n) 的 "n"应该是多少?

转载 作者:行者123 更新时间:2023-11-29 09:22:48 24 4
gpt4 key购买 nike

最近学了CyclicBarrier,但是有个问题:

代码:

public class Main {
public static CyclicBarrier c;

public static void main(String[] agrs){
int threadsCount = 5;
c = new CyclicBarrier(threadsCount + 1);
// make 5 A threads to run
}
}

public class A implements Runnable {

public void run(){
// do something
Main.c.await();
// do something
}
}

关于代码,我想知道为什么我必须通过 (threadsCount + 1) 而不是 (threadsCount) 来初始化 CyclicBarrier,因为我从不在 main 方法中调用 await()?

最佳答案

nnew CyclicBarrier(n) 所在的方数创建一个新的 CyclicBarrier,它将在给定数量的参与方(线程)等待时触发,并且不会对每个障碍执行预定义的操作。

我假设原始线程被算作访问屏障,因此当您创建 5 个新线程时,如果您没有等待 5+1 线程,那么您会先于您跳闸准备好了。

关于java - new CyclicBarrier(n) 的 "n"应该是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com