void *t1(void *args) {
 return (void *) 0;
}
void *t2(void *args) {
 printf("thread 2 param[args] = %d/n", args);
 pthread_exit((void *) 3);
}
void *t3(void *args) {
 while(1) {
  printf("thread 3 is working/n");
  sleep(1);
 }
}
int main(int argc, char *argv[]) {
 pthread_t thread;
 int err;
 void *status;
 printf("creating thread 1/n");
 err = pthread_create(&thread, NULL, t1, NULL);
 if(err) {
  printf("Can not created thread 1/n");
  exit(-1);
 }
 pthread_join(thread, &status);
 printf("thread 1 exit return code %d/n/n", status);
 
 printf("creating thread 2/n");
 err = pthread_create(&thread, NULL, t2, (void *) 9);
 if(err) {
  printf("Can not created thread 2/n");
  exit(-2);
 }
 pthread_join(thread, &status);
 printf("thread 2 exit return code %d/n/n", status);
  
 printf("creating thread 3/n");
 err = pthread_create(&thread, NULL, t3, NULL);
 if(err) {
  printf("Can not created thread 3/n");
  exit(-3);
 }
 sleep(10);
 pthread_cancel(thread);
 pthread_join(thread, &status);
 printf("thread 3 exit return code %d/n", status);
 return 1;
}
新闻热点
疑难解答
图片精选