传值: #include <stdio.h>#include <pthread.h> void thread(int i){ int k; for (k=0;k<10;k++) { printf("this is %d pthread.\n",i); }} int main(){ pthread_t pthread_id; int i,ret; int m=2; ret=pthread_create(&pthread_id,NULL,(void *)thread,(void *)m); if (ret!=0) { printf("create pthread error!\n"); exit(0); } for (i=0;i<10;i++) { printf("this is 1 pthread.\n"); } pthread_join(pthread_id,NULL); return 0;} 编译的时候需要加上-lpthread开关: gcc -o thread_1 thread_1.c -lpthread 传址 #include <stdio.h>#include <pthread.h> void thread(int *i){ int k; int sum=0; for (k=1;k<101;k++) { sum=sum+k; } *i=sum;} int main(){ pthread_t pthread_id; int i,ret; int *m; int sum=0; m=(int *)malloc(sizeof(int)); ret=pthread_create(&pthread_id,NULL,(void *)thread,(void *)&m); if (ret!=0) { printf("create pthread error!\n"); exit(0); } for (i=0;i<1000000;i++) { sum=sum+1; } printf("main sum =%d\n",sum); printf("pthread sum =%d\n",m); //free((void *)m); return 0;} 相关文章: 2021-05-19 2021-12-04 2021-07-31 2022-12-23 2022-12-23 2021-08-06