300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux主进程退出 主进程创建的线程会退出吗?

Linux主进程退出 主进程创建的线程会退出吗?

时间:2019-05-31 06:20:17

相关推荐

Linux主进程退出 主进程创建的线程会退出吗?

1.主进程的退出方式<1>.return 0;<2>.exit(0);2.线程退出方式pthread_exit();3.主进程和线程退出区别<1>.主进程执行完return之后,实际上会调用exit()函数,该函数除了执行关闭IO等操作之外,还会执行关掉其他子线程的操作。<2>.主进程中执行 pthread_exit(),实际上是提前结束了main的主进程,也就无法执行后续exit()函数了。这种方法是可以达到主进程退出子线程继续运行的目的。

//1.demo.cpp#include <iostream>#include <pthread.h>#include <unistd.h>void *process(void *data){while (1){printf("xxx---------->I'm is Son thread...\n");sleep(1);}}int main(){pthread_t pid;printf("xxx---------->%s(), line = %d\n",__FUNCTION__,__LINE__);pthread_create(&pid, nullptr, process, nullptr);pthread_detach(pid);//主进程和线程分离,子线程自行回收和释放资源pthread_exit(nullptr);return 0;}注意:主进程中执行 pthread_exit(),实际上是提前结束了main的主进程,也就无法执行后续exit()函数了,所以子线程所在的进程也就变成了僵尸进程

//1.demo.cpp#include <iostream>#include <pthread.h>#include <unistd.h>void *process(void *data){while (1){printf("xxx---------->I'm is Son thread...\n");sleep(1);}}int main(){pthread_t pid;printf("xxx---------->%s(), line = %d\n",__FUNCTION__,__LINE__);pthread_create(&pid, nullptr, process, nullptr);pthread_detach(pid);//主进程和线程分离,子线程自行回收和释放资源return 0;pthread_exit(nullptr);}注意:主进程执行完return之后,实际上会调用exit()函数,该函数除了执行关闭IO等操作之外,还会执行关掉其他子线程的操作。正常退出。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。