线程创建后不执行问题

来源:互联网 发布:修复白苹果而不丢数据 编辑:程序博客网 时间:2024/05/17 23:18
  1. #include<stdio.h>
  2. #include<pthread.h>

  3. int i = 0;
  4. static void* print_message_function( void *ptr );

  5. int main(int argc ,char** argv )
  6. {
  7.         pthread_t                thread1, thread2;
  8.         char*                    message1 = "Hello";
  9.         char*                    message2 = "World " ;
  10.         void*                    rval = NULL;

  11.         pthread_create( &thread1, NULL, print_message_function, (void*)message1);
  12.         pthread_create(&thread2, NULL, print_message_function, (void*)message2);

  13.         pthread_join(thread1, &rval);     这里才是关键
  14.         printf("thread 1 exit code (%d)\n", (int)rval);

  15.         pthread_join(thread2, &rval);
  16.         printf("thread 2 exit code (%d)\n", (int)rval);

  17. return 0;
  18. }
  19. static void* print_message_function( void *ptr )
  20. {
  21.         char*           message = NULL;
  22.         message = (char *) ptr;
  23.         printf("%s \n", message);
  24.         i++;
  25.         pthread_exit((void*)i);
  26. }