美文网首页
父进程、子进程、线程之间的关系

父进程、子进程、线程之间的关系

作者: 后厂村村长 | 来源:发表于2021-09-02 11:33 被阅读0次

父、子进程

fork子进程之后,操作系统会复制一个与父进程完全相同的子进程,虽说是父子关系,但是在操作系统看来,他们更像兄弟关系,这2个进程共享代码空间,但是数据空间是互相独立的,子进程数据空间中的内容是父进程的完整拷贝,指令指针也完全相同,子进程拥有父进程当前运行到的位置(两进程的程序计数器pc值相同,也就是说,子进程是从fork返回处开始执行的),但有一点不同,如果fork成功,子进程中fork的返回值是0,父进程中fork的返回值是子进程的进程号,如果fork不成功,父进程会返回错误。
可以这样想象,2个进程一直同时运行,而且步调一致,在fork之后,他们分别作不同的工作,也就是分岔了。这也是fork为什么叫fork的原因。

进程、线程

一个进程的所有线程共享由进程获得的资源,但线程拥有属于自己的一小部分资源,就是栈空间,保存其运行状态和局部自动变量的。
堆是堆,栈是栈。栈可以叫做:堆栈。
栈,堆和堆栈指的都是stack,只是叫法不一样。而堆就只能叫做堆。在线程中new出来的空间占的是进程的资源,也就是说是占用的堆资源(heap)。

相关文章

  • 父进程、子进程、线程之间的关系

    父、子进程 fork子进程之后,操作系统会复制一个与父进程完全相同的子进程,虽说是父子关系,但是在操作系统看来,他...

  • 进程与子进程

    讨论几种父、子进程退出时相互产生的影响,同时也整理一下进程与子进程之间的关系。 孤儿进程 (没爹)孤儿进程,顾名思...

  • php 多进程

    int pcntl_fork() 用于创建子进程。成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行...

  • 进程和线程

    进程和线程的区别: 对于进程来说,子进程是父进程的复制品,从父进程那里获得父进程的数据空间,堆和栈的复制品。 而线...

  • Linux回收子进程

    孤儿进程 孤儿进程: 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程...

  • LInux进程之间的通信-有名管道(FIFO)

    Linux进程间的通信-有名管道FIFO 管道的通信只能存在于具有亲缘关系的进程之间,比如fork出来的子进程与父...

  • 父子进程 父子线程 守护线程

    参考 Java中的父线程与子线程守护线程与守护进程 主线程与子线程生命周期没关系 Son.java Main.ja...

  • fork 进程测试 copy-on-write

    父进程 fork 子进程后,子进程通过 copy-on-write 模式获得父进程内存,也就是子进程共用了大部分父...

  • PHP的多进程--防止僵尸进程

    何为僵尸进程 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一...

  • 进程之其他进程

    僵尸进程 定义 子进程先于父进程退出,父进程没有对子进程的退出做出相应的处理,此时子进程就会变成僵尸进程 影响 进...

网友评论

      本文标题:父进程、子进程、线程之间的关系

      本文链接:https://www.haomeiwen.com/subject/dliqwltx.html