【问题标题】:How to implement a dynamic thread Boost::Barrier?如何实现动态线程Boost::Barrier?
【发布时间】:2012-05-19 13:02:35
【问题描述】:

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

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

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

即完成后:

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

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

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

【问题讨论】:

  • 在代码和标题中你忘记了双“:”
  • 谢谢,已经很晚了,我显然看到了双重 :)

标签: c++ multithreading boost synchronization boost-thread


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 2014-12-24
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2011-10-16
    相关资源
    最近更新 更多