1、获取线程pthread_t pthread_self()。注意和gettid()的区别。
2、pthread_equal() 判断线程id是否相等,相等返回0。
3、用pthread_kill()判断一个线程是否结束。
原型:
#include <pthread.h>
#include <signal.h>
int pthread_kill(pthread_t thread, int signo)
返回: EINVAL signo 的格式不对。
ESRCH 线程不存在了。
例如:
int ret;
ret = pthread_kill(tid, 0);
if (ret == ESRCH)
{
线程已结束。
}
else if (ret == EINVAL)
{
非法的signo
}
else
{
线程依然alive。
}