【问题标题】:Parallel Execution with pthread_cond_broadcast?与 pthread_cond_broadcast 并行执行?
【发布时间】:2013-06-15 11:48:29
【问题描述】:

我想使用 pthread_cond_broadcast() 来唤醒所有等待相同条件的线程。

但是,这些线程似乎不能真正并行运行,因为它们必须共享同一个互斥体。

我说的对吗?或者有什么办法吗?

提前致谢。

【问题讨论】:

  • 并非所有内容都可以转换为并行运行。在任何值得一提的程序中,总有一些部分必须按顺序运行(例如,共享公共资源)。因此,我们通常谈论可以同时运行的部分和不能同时运行的部分。如果某些东西“正在等待相同的条件”,那么很可能就是这种情况。

标签: c++ multithreading synchronization posix


【解决方案1】:

每个线程在唤醒时都必须获取锁,但如果紧随其后的工作可以并行进行,则只需在安全的最早时间释放锁即可。

【讨论】:

  • 谢谢。希望有某种方法可以不在同一个条件变量上共享同一个锁。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2014-03-11
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多