c语言线程终止练习示例
本文导语: 代码如下:#include #include #include void *t1(void *args) { return (void *) 0;} void *t2(void *args) { printf("thread 2 param[args] = %dn", args); pthread_exit((void *) 3);} void *t3(void *args) { while(1) { printf("thread 3 is workingn"); sleep(1); }} int main(int argc, char *arg...
#include
#include
#include
void *t1(void *args) {
return (void *) 0;
}
void *t2(void *args) {
printf("thread 2 param[args] = %dn", args);
pthread_exit((void *) 3);
}
void *t3(void *args) {
while(1) {
printf("thread 3 is workingn");
sleep(1);
}
}
int main(int argc, char *argv[]) {
pthread_t thread;
int err;
void *status;
printf("creating thread 1n");
err = pthread_create(&thread, NULL, t1, NULL);
if(err) {
printf("Can not created thread 1n");
exit(-1);
}
pthread_join(thread, &status);
printf("thread 1 exit return code %dnn", status);
printf("creating thread 2n");
err = pthread_create(&thread, NULL, t2, (void *) 9);
if(err) {
printf("Can not created thread 2n");
exit(-2);
}
pthread_join(thread, &status);
printf("thread 2 exit return code %dnn", status);
printf("creating thread 3n");
err = pthread_create(&thread, NULL, t3, NULL);
if(err) {
printf("Can not created thread 3n");
exit(-3);
}
sleep(10);
pthread_cancel(thread);
pthread_join(thread, &status);
printf("thread 3 exit return code %dn", status);
return 1;
}