c++ - 如何实现动态线程Boost::Barrier?

标签 c++ multithreading boost synchronization boost-thread

通常,线程屏障(即 boost::barrier)用一个整数初始化,该整数表示必须调用 boost::barrier::wait 的线程数 - 所有线程都在该点等待,直到满足条件,然后所有线程继续。

是否可以实现一个线程屏障,它可以在初始化后设置其“waitCount”?

或者是否有提供相同行为的等效方法?

即完成后:

int numWaiting = 2;
boost::barrier b( numWaiting );

没有设置新的 numWaiting 值的方法;

想要这样做的原因基本上是进程可用的线程数可能会在屏障初始化之后但在满足等待条件之前增加。

最佳答案

您可以将此类行为添加到基于 boost::mutex 的简单屏障实现中。 请参阅此处的代码:http://code.google.com/p/fengine/source/browse/trunk/src/engine/misc/barrier.hpp

关于c++ - 如何实现动态线程Boost::Barrier?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542774/

相关文章:

c++ - 获取类似 STL 的嵌套容器中的元素总数

c++ - 指针在不同线程中得到错误的值

c++ - QGridLayout 具有不同大小的单元格

c# - Interlocked.Exchange 说明

c++ - boost accumulator_set : expect primary expression

c++ - 如何将 Boost UUID 随机生成器输出传递给 main

c++ - 使用谓词作为比较函数时出错

android - Android 中的多线程助手类

.net - vb.net多线程无法正常工作

c++ - 存储 2D 点以便快速检索矩形内的点