当前位置:  技术问答>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后面打印,必须要用一些线程同步的技术

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • VJ就是烂, 我都快用出心脏病来了,该死的老师偏要用他,现在终于解脱了
  • 如何去掉Application中该死的applet窗口标签
  • 该死的中文显示问题,帮帮忙
  • 该死的NFS!
  • 天哪,我快抓狂了,这该死的FreeBSD 5.3的X!!!
  • 关于那该死的ubuntu上网问题。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3