杀死线程
pthread_cancel 杀死(取消)线程 其作用,对应进程中 kill() 函数。
int pthread_cancel(pthread_t thread);
成功:0;失败:错误号
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
void *tfn(void *arg)//线程函数
{
printf("线程 Thread_ID = %lu\n", pthread_self());
sleep(5);
return NULL;
}
int main(void)
{
pthread_t tid;
pthread_create(&tid, NULL, tfn, NULL);//创建线程
sleep(5);
pthread_cancel(tid);//杀死线程
void *ret;
pthread_join(tid,&ret);//线程回收
printf("ret return %d\n", (int)ret);
return 0;
}
分离
线程分离
线程分离就是让系统回收线程,不用通过cancle或者join来回收
线程结束后,其退出状态不由其他线程获取,而直接自己自动释放。网络、多线程服务器常用。
也可使用 pthread_create函数参2(线程属性)来设置线程分离。
int pthread_detach(pthread_t thread);
成功:0;失败:错误号