【问题标题】:Regarding PThread's and PThread Barriers关于 PThread 和 PThread 障碍
【发布时间】:2016-01-09 14:00:50
【问题描述】:

我正在编写一个 SMT 程序,并且正在尝试解决一个有趣的问题。

我需要我的所有函数一起退出,但是有些线程会卡在障碍上,即使我不希望它们这样做。

我的问题是:当我删除障碍时会发生什么?线程是否卡在屏障释放处?有没有办法向某个障碍发出释放信号,即使障碍处的线程数尚未达到?

谢谢

【问题讨论】:

  • 如果您不希望线程在屏障上被阻塞,请不要在屏障上阻塞线程。只需准确编写您需要的代码。
  • @EOF 谢谢,它证实了我的想法和 caf 写的内容

标签: c multithreading pthreads pthread-barriers


【解决方案1】:

如果屏障上阻塞了任何线程,则调用pthread_barrier_destroy() 是不合法的。

当您的线程决定在其他线程可能在屏障处等待它的情况下提前退出时,它应该在退出之前调用pthread_barrier_wait()。

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 2016-07-19
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2019-04-12
    • 2023-04-03
    相关资源
    最近更新 更多