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主进程退出,主进程创建的线程会退出吗?相关推荐

  1. Linux学习之系统编程篇:单个线程的退出函数

    能否用 exit 来退出某个线程,exit 是用来退出进程的,因为父子线程共享同一地址空间,如果在某线程中使用,会使 所有线程全退出,因此需要使用别的函数 :pthread_exit (注意:子线程使 ...

  2. Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程

    一.定义 再看正文之前我要先强调一下几点: 1. Linux中没有真正的线程,但windows中确实有线程 2. Linux中没有的线程是由进程来模拟实现的(又称作:轻量级进程) 3. 所以在Linu ...

  3. 【Linux学习】pthread_create主线程与创建的新线程之间退出关系

    我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1.  主线程等待新线程先结束退出,主线程后退出.正常执行. 实例代码: #include & ...

  4. 线程退出【Linux学习】pthread_create主线程与创建的新线程之间退出关系

    本篇文章个人在青岛吃饭的时候突然想到的...最近就有想写几篇关于线程退出的文章,所以回家到之后就奋笔疾书的写出来发布了 我们在一个线程中经常会创立另外的新线程,如果主线程退出,会不会影响它所创立的新线 ...

  5. linux进程属主6,20150917 Linux进程查看与管理以及作业管理

    第一.基础知识 MBR引导--内核--内核程序-->协调其它程序 一般内核运行在硬件之上,各应用也在硬件之前 1)OS的基本功能:文件系统.网络功能.进程管理.内存管理.驱动程序.安全功能 以上 ...

  6. 《Linux进程概念,进程创建退出等待替换,环境变量等基础操作 ---总结》

    前言 Linux系统的进程概念,进程状态,以及操作创建进程,还有环境变量及相关指令,程序地址空间等一些知识的梳理,将自己的理解总结如下,希望和各位一起进步,一起学习. 以下是本篇文章正文内容. 文章目 ...

  7. 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )

    文章目录 一.进程状态 二.进程创建 三.进程终止 ( 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 ) 一.进程状态 Linux 进 ...

  8. Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

    日期 内核版本 架构 作者 GitHub CSDN 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 ...

  9. linux在主函数中调用进程,linux 调用进程

    大家好! 请教一个问题:有两个进程(A&B),进程A中通过excel()函数调用进程B.请问进程A如何获取进程B的返回结果? 谢谢! | There is no return from a s ...

最新文章

  1. android播放页蒙层过渡效果,EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!...
  2. AJAX ControlToolkit学习日志-ResizableControlExtender(23)
  3. vim折叠的使用方法
  4. 中南大学在线考试答案计算机基础,中南大学《计算机基础》在线考试题库(267题)(有答案).doc...
  5. ros(7)自定义service数据
  6. mysql字符串语法_MySQL语法模板 函数:字符串
  7. Linux下修改IP
  8. Android之Adobe AIR本地扩展
  9. Foxmail配置IMAP账号
  10. 两个HC-05蓝牙模块互相绑定构成无线串口模块
  11. NetApp S550:做“小”的艺术
  12. 【keil5】安装及注册
  13. 关于CSDN登录提示手机号验证的问题
  14. c语言编写算术编码,算术编码C语言实现
  15. java 页面换行_java 页面换行处理
  16. RTCP 协议的 NACK 报文
  17. 华为“不造车”的承诺,快到期了
  18. PLM教程:CAXA 3D 与 PLM 的集成应用
  19. 如何使用文件保险箱加密 Mac 上的启动磁盘?
  20. fw325r服务器无响应,迅捷fw325r显示已连接不可上网怎么办?

热门文章

  1. Micropython教程之TPYBoard DIY金属探测仪实例演示(萝卜学科编程教育)
  2. 唯一的确定一棵二叉树
  3. 瑞星年度网络安全报告揭示 “互联网+”企业最“高危”
  4. Spring之JDBC模板jdbcTemplate
  5. Github上不错的Android开源代码(一)
  6. test和read命令
  7. Kaldi AMI数据集脚本学习1----cmd.sh和path.sh
  8. 神经网络用作分类器(附代码matlab)
  9. QTdesigner使用--待更新
  10. Tensorflow学习笔记-第二节程序结构