condition-variable

    0热度

    1回答

    所以基本上我所处的情况是我有一堆线程,每个线程在整个一周进行不同的计算。在本周结束时,每个线程调用函数X(),然后开始计算下一周并重复此循环。 但是,只有一个线程才允许实际执行方法X()中的操作,并且只有当所有线程都已达到方法X()时才执行操作。而且,没有任何线程可以继续前进,直到完成使用方法X()的一个线程。 所以我很难实现这一点。我觉得我需要使用一个条件变量,但我仍然不知道线程和什么。

    1热度

    1回答

    我正在使用tbb作为某个项目,并且我被迫使用了tbb任务。 我的程序有N个任务,他们正在进行交互。 伪代码是这样的: class Task; Task* t[N]; class Task { startTask(Task &t) { t.notify(); } execute() { while(!end){ if(som

    0热度

    1回答

    我有以下情形: 我拆一个任务分解成几个阶段,有几个线程在每个阶段做实际工作,后期的线程需要等待当前阶段的所有线程完成。 例如: 线程1,2,3正在做的工作,在步骤一个 螺纹4,5,6正在做的工作,在步骤2 螺纹7,8 9正在执行第三步 ... 每个步骤中的线程都是独立的,但它们需要等待上一步中的线程完成。 这里是我想要实现这个: 在当前步骤的每个线程,等待上表示,如果目前的步骤就可以开始 一旦当前

    2热度

    1回答

    设想一个条件变量线程块: pthread_mutex_lock (mutex); do_something(); pthread_cond_wait(cond, mutex); // [1] do_something_else(); pthread_mutex_unlock (mutex); 互斥量被释放,并在不同的线程试图锁定互斥畅通: pthread_mutex_lock (mut

    0热度

    2回答

    据我所知,在Windows上CRITICAL_SECTION只能用作非递归互斥量。要获得递归互斥锁,你必须使用OpenMutex和朋友。 然而,AFAIU,Win32的互斥锁不能与条件变量使用(InitializeConditionVariable等) 有没有结合在Windows上使用递归互斥体与条件变量的方法吗?

    1热度

    1回答

    我有一个“引擎”异步处理任务和一项任务,我想等到该任务处理。 boost::condition_variable cvWorkDone; DoSomeWork() { PostAsyncJob(DoWorkAsync) // is a boost::asio::post boost::mutex::scoped_lock lock(mtxWorkDoneCv);

    0热度

    2回答

    在此链接here中,在递增函数中,条件变量在实际递增计数(从零开始)之前发出信号。信号在递增计数之后是否应该被调用?或者在decrement_count函数中的等待调用不会返回,直到在increment_function中释放互斥量为止? pthread_mutex_t count_lock; pthread_cond_t count_nonzero; unsigned count; de

    8热度

    3回答

    我想了解互斥锁在条件变量中使用时会发生什么。 在以下示例中,从cppreference int main() { std::queue<int> produced_nums; std::mutex m; std::condition_variable cond_var; bool done = false; bool notified = fal

    0热度

    2回答

    在阅读关于并发性的书籍时,作者说信号量与signal()工作方式中的条件变量不同。信号量跟踪调用signal()的次数,而条件变量不调用。它说,“在没有人等待时调用pthread_cond_signal没有任何影响”。为什么这个细节很重要(我在不同的地方看到过它重复多次)?对使用有什么影响?谢谢

    5热度

    2回答

    我无法在包含使用C++ 11条件变量的生产者和使用者的简单VS2012控制台应用程序中可靠地运行代码。我的目标在生产,使用3个参数wait_for方法或者可能wait_until方法从代码中,我在这些网站已经聚集了小可靠的方案(作为一个更复杂的程序的基础上使用): condition_variable: wait_for , wait_until 我想使用3参数wait_for与下面的谓词,除了它