【发布时间】:2010-11-24 20:12:14
【问题描述】:
是否有一种机制可以用来判断 pthread 线程当前是否正在运行或已退出?如果线程尚未退出,是否有一种 pthread_join() 方法可以在特定时间段后超时?
【问题讨论】:
是否有一种机制可以用来判断 pthread 线程当前是否正在运行或已退出?如果线程尚未退出,是否有一种 pthread_join() 方法可以在特定时间段后超时?
【问题讨论】:
我刚刚将线程封装在一个 C++ 类中,并保留了一个状态变量,以便以后检查。
【讨论】:
如果您只针对 linux,请使用 http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_tryjoin_np.3.html
如果您需要任何 POSIX 系统的东西,您可以复制 http://www.opengroup.org/onlinepubs/000095399/xrat/xsh_chap02.html#tag_03_02_08_21 中的“pthread_timedjoin”实现 - 它使用条件变量来表示线程终止,并使用 pthread_cond_timedwait 来表示超时。
【讨论】: