【IT专家】Linux多线程总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文由我司收集整编,推荐下载,如有疑问,请与我司联系
Linux多线程总结
其中三个正常终止函数:_exit、_Exit和exit之间是有区别的。

_exit、_Exit立即退出;而exit则先执行一些清理工作,然后再退出。

 并且可以利用函数atexit来声明在exit退出前会被调用的函数(称为终止处理程序),atexit原型为:
 如下图所示的一个C程序是如何启动和终止的:
 注意:内核使程序执行的唯一方法是调用一个exec函数。

进程自愿终止的唯一方法是显示或隐式地(通过调用exit)滴啊用_exit或_Exit;进程也可非自愿地有一个信号使其终止。

 1.2 进程内存布局
 每个进程所分配的内存由很多部分组成,通常称之为”段”。

如下所示:
 栈:自动变量以及每次函数调用时所需保存的信息都存放在此段中,包括局部变量、实参、返回值、临时变量和环境信息。

 Figure 1 典型的存储空间安排
 2 进程控制
 每个进程都有进程ID,其中ID为0的进程是调度进程(交换进程);进程为1的是init进程,并且init进程决不会终止,
 2.1 进程的创建
 进程的创建可以通过函数fork和vfork进行。

 重点注意:
 不同的进程拥有不同的地址空间。

如在不同的两个进程都拥有100的地址,那么这两个100存放的值是不一样的。

 2.1.1 fork函数fork函数被调用一次,却返回两次,子进程返回0,父进程返回子进程的ID值;并且子进程的内存是父进程的完全副本,包括局部、全局、静态的。

相关文档
最新文档