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); } 如果线程即将到期,因为它们被杀或被取消,那么生活就会变得更复杂,你可能会进入巨大的黑客领域而且可能值得重新考虑设计. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |