编译的的时候需要加-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");
}
11万+

被折叠的 条评论
为什么被折叠?



