是否有一种机制可以用来判断pthread线程当前是在运行还是已经退出?是否有一个pthread_join()的方法,如果线程还没有退出,它可以在特定的时间段后超时?
答案 0 :(得分:5)
如果您只定位到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来表示超时。
答案 1 :(得分:2)
我刚刚将这个线程包装在一个C ++类中,并保持一个状态变量可以在以后检查。