为了账号安全,请及时绑定邮箱和手机立即绑定

为什么是线程2先退出,然后才是线程1返回?

为什么是线程2先退出,然后才是线程1返回?

lukuang 2016-11-06 22:18:27
#include "apue.h"#include <pthread.h>void *thr_fn1(void *arg){ printf("thread 1 returning\n"); return((void *)1);}void *thr_fn2(void *arg){ printf("thread 2 exiting\n"); pthread_exit((void *)2);}intmain(void){ int err; pthread_t tid1, tid2; void *tret; err = pthread_create(&tid1, NULL, thr_fn1, NULL); if (err != 0) err_exit(err, "can't create thread 1"); err = pthread_create(&tid2, NULL, thr_fn2, NULL); if (err != 0) err_exit(err, "can't create thread 2"); err = pthread_join(tid1, &tret); if (err != 0) err_exit(err, "can't join with thread 1"); printf("thread 1 exit code %ld\n", (long)tret); err = pthread_join(tid2, &tret); if (err != 0) err_exit(err, "can't join with thread 2"); printf("thread 2 exit code %ld\n", (long)tret); exit(0);}But in the code ,there are:        err = pthread_create(&tid1, NULL, thr_fn1, NULL); if (err != 0) err_exit(err, "can't create thread 1"); err = pthread_create(&tid2, NULL, thr_fn2, NULL); if (err != 0) err_exit(err, "can't create thread 2");
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信