[Linux线程]多线程的阻塞和退出
#include<stdio.h>#include<pthread.h>#include<stdlib.h>//线程1的启动函数void*threaddeal1(void*arg){printf("thread1returning\n");return((void*)1);}//线程2的启动函数void*threaddeal2(void*arg){printf("thread2exiting\n");pthread_exit((void*)2);}//主函数intmain(intargc,char*argv[]){interr;pthread_tthreadid1,threadid2;void*tret;//创建线程1err=pthread_create(&threadid1,NULL,threaddeal1,NULL);if(err!=0)//创建线程1失败{printf("创建线程1失败,错误为:%s\n",strerror(err));}//创建线程2err=pthread_create(&threadid2,NULL,threaddeal2,NULL);if(err!=0){printf("创建线程2失败,错误为:%s\n",strerror(err));}//阻塞线程1err=pthread_join(threadid1,&tret);if(err!=0){printf("阻塞线程1失败,错误为:%s\n",strerror(err));}//退出并且打印线程1的退出状态printf("线程1的退出码为%d\n",(int)tret);//阻塞线程2err=pthread_join(threadid2,&tret);if(err!=0){printf("阻塞线程2失败,错误为:%s\n",strerror(err));}//退出并且打印线程2的退出状态printf("线程2的退出码为%d\n",(int)tret);exit(0);}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。