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等操作之外,还会执行关掉
其他子线程的操作。正常退出。
Linux主进程退出,主进程创建的线程会退出吗?相关推荐
- Linux学习之系统编程篇:单个线程的退出函数
能否用 exit 来退出某个线程,exit 是用来退出进程的,因为父子线程共享同一地址空间,如果在某线程中使用,会使 所有线程全退出,因此需要使用别的函数 :pthread_exit (注意:子线程使 ...
- Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
一.定义 再看正文之前我要先强调一下几点: 1. Linux中没有真正的线程,但windows中确实有线程 2. Linux中没有的线程是由进程来模拟实现的(又称作:轻量级进程) 3. 所以在Linu ...
- 【Linux学习】pthread_create主线程与创建的新线程之间退出关系
我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1. 主线程等待新线程先结束退出,主线程后退出.正常执行. 实例代码: #include & ...
- 线程退出【Linux学习】pthread_create主线程与创建的新线程之间退出关系
本篇文章个人在青岛吃饭的时候突然想到的...最近就有想写几篇关于线程退出的文章,所以回家到之后就奋笔疾书的写出来发布了 我们在一个线程中经常会创立另外的新线程,如果主线程退出,会不会影响它所创立的新线 ...
- linux进程属主6,20150917 Linux进程查看与管理以及作业管理
第一.基础知识 MBR引导--内核--内核程序-->协调其它程序 一般内核运行在硬件之上,各应用也在硬件之前 1)OS的基本功能:文件系统.网络功能.进程管理.内存管理.驱动程序.安全功能 以上 ...
- 《Linux进程概念,进程创建退出等待替换,环境变量等基础操作 ---总结》
前言 Linux系统的进程概念,进程状态,以及操作创建进程,还有环境变量及相关指令,程序地址空间等一些知识的梳理,将自己的理解总结如下,希望和各位一起进步,一起学习. 以下是本篇文章正文内容. 文章目 ...
- 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )
文章目录 一.进程状态 二.进程创建 三.进程终止 ( 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 ) 一.进程状态 Linux 进 ...
- Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)
日期 内核版本 架构 作者 GitHub CSDN 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 ...
- linux在主函数中调用进程,linux 调用进程
大家好! 请教一个问题:有两个进程(A&B),进程A中通过excel()函数调用进程B.请问进程A如何获取进程B的返回结果? 谢谢! | There is no return from a s ...
最新文章
- android播放页蒙层过渡效果,EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!...
- AJAX ControlToolkit学习日志-ResizableControlExtender(23)
- vim折叠的使用方法
- 中南大学在线考试答案计算机基础,中南大学《计算机基础》在线考试题库(267题)(有答案).doc...
- ros(7)自定义service数据
- mysql字符串语法_MySQL语法模板 函数:字符串
- Linux下修改IP
- Android之Adobe AIR本地扩展
- Foxmail配置IMAP账号
- 两个HC-05蓝牙模块互相绑定构成无线串口模块
- NetApp S550:做“小”的艺术
- 【keil5】安装及注册
- 关于CSDN登录提示手机号验证的问题
- c语言编写算术编码,算术编码C语言实现
- java 页面换行_java 页面换行处理
- RTCP 协议的 NACK 报文
- 华为“不造车”的承诺,快到期了
- PLM教程:CAXA 3D 与 PLM 的集成应用
- 如何使用文件保险箱加密 Mac 上的启动磁盘?
- fw325r服务器无响应,迅捷fw325r显示已连接不可上网怎么办?
热门文章
- Micropython教程之TPYBoard DIY金属探测仪实例演示(萝卜学科编程教育)
- 唯一的确定一棵二叉树
- 瑞星年度网络安全报告揭示 “互联网+”企业最“高危”
- Spring之JDBC模板jdbcTemplate
- Github上不错的Android开源代码(一)
- test和read命令
- Kaldi AMI数据集脚本学习1----cmd.sh和path.sh
- 神经网络用作分类器(附代码matlab)
- QTdesigner使用--待更新
- Tensorflow学习笔记-第二节程序结构