執行緒建立後不執行問題
阿新 • • 發佈:2019-02-10
- #include<stdio.h>
- #include<pthread.h>
- int i = 0;
- static void* print_message_function( void *ptr );
- int main(int argc ,char** argv )
- {
- pthread_t thread1, thread2;
- char* message1 = "Hello";
- char* message2 = "World " ;
- void* rval = NULL;
- pthread_create( &thread1, NULL, print_message_function, (void*)message1);
- pthread_create(&thread2, NULL, print_message_function, (void*)message2);
- pthread_join(thread1, &rval); 這裡才是關鍵
- printf("thread 1 exit code (%d)\n", (int)rval);
- pthread_join(thread2, &rval);
- printf("thread 2 exit code (%d)\n", (int)rval);
- return 0;
- }
- static void* print_message_function( void *ptr )
- {
- char* message = NULL;
- message = (char *) ptr;
- printf("%s \n", message);
- i++;
- pthread_exit((void*)i);
- }