pthread_testcancelとpthread_cancel関数の簡単な例
2517 ワード
/*0.
int pthread_cancel(pthread_t thread);
void pthread_testcancel(void);
, , 。
:*/
#include <stdlib.h>
#include <pthread.h>
#include <stdio.h>
#include <sched.h>
int a = 0;
void *thread1(void *arg)
{
pthread_testcancel(); pthread_cancel(t1), ;
a = 10;
}
/* :
int a = 0;
void *thread1(void *arg)
{
a = 10;
pthread_testcancel();
}
:a
main start
main end, a=10*/
int main(int argc, char *argv[])
{
pthread_t t1, t2, t3;
int ret, i;
printf("main start
");
ret = pthread_create(&t1, NULL, thread1, NULL);
pthread_cancel(t1);
pthread_join(t1, NULL);
sleep(3);
printf("main end, a=%d
", a);
return 0;
}
/* : ,a 。
main start
main end, a=0*/