编译的的时候需要加-lpthread选项,因为它不是linux默认的库。
#include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<pthread.h> #include<string.h> void * thread_function(void * arg); char message[] = "Hello world!"; int main(){ int res; pthread_t a_thread; void * thread_result; res = pthread_create(&a_thread, NULL, thread_function, (void *)message); if( res != 0 ){ perror("Thread create failed"); exit(1); } printf("Waiting for thread to finish...\n"); res = pthread_join(a_thread,&thread_result); if( res != 0 ){ perror("Thread join failed"); exit(1); } printf("Thread joined, it reaturned %s\n",(char *)thread_result); printf("Message is now %s\n", message); exit(0); } void * thread_function(void *arg){ printf("thread function is running, Argument was %s\n",(char *)arg); sleep(3); strcpy(message,"Bye!"); pthread_exit("Thanks for cpu time"); }