当前位置: 技术问答>linux和unix
这该死的程序,怎么老有个2??
来源: 互联网 发布时间:2017-01-23
本文导语: #include #include int num1=1,num2=2; void * mythread(void * attr) //没有加上void 的后果是非常严重的!! { int * num=(int *)attr; printf("%dn",*num); } int main(int agrc,char *argv[]) { pthread_t tid1,tid2; int status; status = pthread_create(&tid1,NULL,mythr...
#include
#include
int num1=1,num2=2;
void * mythread(void * attr) //没有加上void 的后果是非常严重的!!
{
int * num=(int *)attr;
printf("%dn",*num);
}
int main(int agrc,char *argv[])
{
pthread_t tid1,tid2;
int status;
status = pthread_create(&tid1,NULL,mythread,&num1);
if(status){
printf("create failed!");
return -1;
}
status = pthread_create(&tid2,NULL,mythread,&num2);
if(status){
printf("create failed!");
return -1;
}
/* status = pthread_join(tid1,NULL);
if(status){
printf("error1!");
return -1;
}*/
status = pthread_join(tid1,NULL);
if(status){
printf("error2!n");
return -1;
}
return 0;
}
|
2就是你第二个线程打印出来的啊
线程的启动不是按照你的代码顺序启动的,这个是靠内核的调度。
如果你希望2在1后面打印,必须要用一些线程同步的技术
线程的启动不是按照你的代码顺序启动的,这个是靠内核的调度。
如果你希望2在1后面打印,必须要用一些线程同步的技术
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。