功能:调用线程终止同进程中,其他的线程,调用该方法后,被终止的线程并不一定立马被终止,只有在下次系统调用或调用了pthread_testcancel()方法后,才真正终止线程
原型:int pthread_cancel(pthread_t pid)
#include<stdio.h>
#include<pthread.h>
void *child(void *arg)
{
int i = 0;
while(1)
{
printf("child running : %d\n", count++);
}
}
void main()
{
pthread_t pid;
void *ret;
pthread_create(&pid, NULL, child, NULL);
sleep(2);
pthread_cancel(pid);
phtread_join(pid, NULL);
}
执行后该程序将会一直执行child的程序,, 只有在child函数的while循环里加上pthread_testcancel()后才会结束
#include<stdio.h>
#include<pthread.h>
void *child(void *arg)
{
int i = 0;
while(1)
{
printf("child running : %d\n", count++);
pthread_testcancel();
}
}
void main()
{
pthread_t pid;
void *ret;
pthread_create(&pid, NULL, child, NULL);
sleep(2);
pthread_cancel(pid);
phtread_join(pid, NULL);
}