1. 程式人生 > >執行緒建立後不執行問題

執行緒建立後不執行問題

  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. }