当前位置:  技术问答>linux和unix

求教大神.关于pthread_join函数

    来源: 互联网  发布时间:2017-05-07

    本文导语:  pthread_join函数中有这么一句话,不是很理解.  If multiple threads  simultaneously  try  to  join  with  the  same thread,   the   results  are  undefined.  多个线程同时join到一个线程里面时,结果没有定义. 什么时候会出...

pthread_join函数中有这么一句话,不是很理解.

 If multiple threads  simultaneously  try  to  join  with  the  same thread,   the   results  are  undefined. 
多个线程同时join到一个线程里面时,结果没有定义.
什么时候会出现这种情形?会出现什么意外结果?

最近在写一个程序,开了4个线程,轮流join,没有出现过什么错误...

伪代码
pthread_create(A);
pthread_create(B);
pthread_create(C);
pthread_create(D);
//假设ABCD线程都能很快返回
sleep(10);//保证都能线程执行完成
pthread_join(A);
pthread_join(B);
pthread_join(C);
pthread_join(D);

在join A的时候,假设ABCD都已经执行完成了...这时可能会有问题?(不知道自己理解的对不对)


综合来说:
问题2个.
1)什么时候可能会有问题?

2)出现问题时,会发生什么情况?

谢谢大神指导.

|


多个线程join1个
比如

main()
{
pthread_create(A);
pthread_create(B);
pthread_create(C);
pthread_create(D);
join(A)
}
funcB(){
join(A)
}
funcC(){
join(A)
}

这个就是主线程  B 和C  3个线程同时joinA

没有定义的行为会有什么问题? 
答:会有任何问题, 可能跑死了,可能死循环了,可能显示器冒烟了,可能CPU烧掉了,还可能导致月亮掉下来了。。。这个就是未定义行为的行为

|
那句话的意思是,不要多次在不同的线程调用join同一个线程。不是一个线程多次调用join

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












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 400分求教: 求教一简单问题,现场给分
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 急!!求教linux命令的使用:统计出/bin目录中文件的个数,追加到文件filea的结尾
  • 求教:在UNIX中查找包含指定文字的文件名
  • 小白菜求教linux大鸟
  • JDK1.3.1初级问题求教
  • 初学者有问题求教!
  • 各路高手请进!高分求教,非常着急!
  • 高分求教的问题(关于SendMail设置)
  • 简单问题:从sun网站上当了个jdk1.4b3,bin后缀,求教怎么安装
  • 求教:知道当前时间,如何得到N天前的时间 ?
  • 求教:switch(condition)中的condition 必须为整型吗?
  • Linux远程访问的问题,高分求教:)
  • 求教:在Linux下如何做代理服务器?
  • 紧急求教!究竟Java里面有没有相当于C++的CPOINT的类阿?
  • 求教JAVA中XML解析问题
  • 50分求教,在JSP里如何将String转换成Double
  • 我刚装好,是不是需要配制环境变量?求教。
  • 400分求教JAVA皮肤的问题


  • 站内导航:


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

    ©2012-2021,