通常,线程屏障(即 boost::barrier)用一个整数初始化,该整数表示必须调用 boost::barrier::wait 的线程数——所有线程在该点等待,直到满足条件,然后所有线程继续。
是否可以实现一个线程屏障,它可以在初始化后设置其“waitCount”?
还是有一种等效的方法可以提供相同的行为?
即在我们完成之后:
int numWaiting = 2;
boost::barrier b( numWaiting );
没有设置新的 numWaiting 值的方法;
想要这样做的原因基本上是在屏障被初始化但在等待条件满足之前,进程可用的线程数可能会增加。