关于pthread_exit()

关于pthread_exit()

如果子线程不掉用pthread_exit()函数 如果子线程执行完全部的代码后主线程还没有结束 也会使子线程会结束和释放吧

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
无__名 2023-08-26 08:46:19

线程函数执行完毕后,会自动结束,但需要主线程(创建子线程)等待释放资源,调用 pthread_join 函数,这里指的线程是可结合的,如果通过 pthread_detach 函数进行分离,则可以在线程结束后 ,由自动释放相应的资源

  • 提问者 shameL #1

    我可以这样理解嘛

    第一种情况 子线程执行方法里面调用了pthread_exit()函数 但是主线程没有等子线程执行pthread_exit()的时候退出了就不会释放资源(主线程没有调用pthread_join和pthread_detach 函数)

    第二种情况 子线程执行方法里面没有调用了pthread_exit()函数 但是主线程等待了子线程函数自己执行结束了 会释放资源

    比如主线程里面调用了pthread_join函数 或者写了一个while(i>=1000000){ i++} 保证了子线程先执行完当主线程结束的时候会释放子线程资源


    =============================

    如果使用了 pthread_detach分离 则不管主线程是否在子线程完成之前还是之后 子线程完成了会自动的释放资源





    2023-08-26 21:34:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师