加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 关于pthread_barrier_wait

发布时间:2020-12-13 23:01:26 所属栏目:Linux 来源:网络整理
导读:我正在使用pthread_barrier_wait来同步线程,但是在我的程序中,有一个或多个线程可能会过期而其他线程正在等待它们到达pthread_barrier_wait.现在有办法,pthread_barrier_wait上的线程知道有些线程已经到期,而所有线程都已到达障碍吗? 解决方法 这在很大程度
我正在使用pthread_barrier_wait来同步线程,但是在我的程序中,有一个或多个线程可能会过期而其他线程正在等待它们到达pthread_barrier_wait.现在有办法,pthread_barrier_wait上的线程知道有些线程已经到期,而所有线程都已到达障碍吗?

解决方法

这在很大程度上取决于它们如何以及为何过期.

屏障并不关心在哪里调用pthread_barrier_wait()所以如果它是一个编程的到期,那么只需在那一点上调用wait.屏障计数器递减,当线程被释放时,您可以执行正常的错误检查,然后立即调用pthread_exit或其他任何内容.将pthread_wait放在单独的函数中可能会简化操作.

if (must_die)
{
    do_barrier_wait();
    pthread_exit(NULL);
}

如果线程即将到期,因为它们被杀或被取消,那么生活就会变得更复杂,你可能会进入巨大的黑客领域而且可能值得重新考虑设计.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读