_张鹏鹏_ 2017-09-01 02:18
浏览 405
已结题

Linux线程分离后主线程连接怎么会成功?

源代码如下:
#include
#include
#include
void *thread1(void *arg);
void *thread2(void *arg);
void main(){
int err1,err2;
pthread_t tid1,tid2;
void *retval1,*retval2;
//pthread_create()成功返回0
err1 = pthread_create(&tid1,NULL,thread1,NULL);
err2 = pthread_create(&tid2,NULL,thread2,NULL);
printf("main thread begin\n");
if(err1 || err2){
printf("create thread err\n");
return 0;
}
//pthread_join()成功返回0,否则返回错误码
printf("th1 join state:%d\n",pthread_join(tid1,&retval1));
printf("th2 join state:%d\n",pthread_join(tid2,&retval2));
printf("th1 return val:%d\n",(void *)retval1);
printf("th2 return val:%d\n",(void *)retval2);
printf("main thread end\n");
}

void *thread1(void *arg){
printf("hello I am thread1\n");
return (void *)1;
}
void *thread2(void *arg){
printf("hello I am thread2\n");
pthread_detach(pthread_self());
return (void *)2;
}

运行结果:
第二幅图为什么会运行正常?线程分离后连接不是会失败的吗?
图片说明

图片说明

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?