Linux进程全解4——fork创建子进程
生活随笔
收集整理的這篇文章主要介紹了
Linux进程全解4——fork创建子进程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
以下內(nèi)容源于朱有鵬《物聯(lián)網(wǎng)大講堂》課程的學(xué)習(xí)整理,如有侵權(quán),請告知刪除。
1、為什么要創(chuàng)建子進程?
(1)每一次程序的運行都需要一個進程;
(2)多進程實現(xiàn)宏觀上的并行。
2、fork的內(nèi)部原理
(1)進程的分裂生長模式
- 如果操作系統(tǒng)需要一個新進程來運行一個程序,那么操作系統(tǒng)會用一個現(xiàn)有的進程來復(fù)制生成一個新進程。注意是復(fù)制后再修改,而不是重新創(chuàng)建(代價大)。
- 老進程叫父進程,復(fù)制生成的新進程叫子進程。
(2)fork的演示
- fork函數(shù)調(diào)用一次,會返回2次,因為父子都有相同的一份代碼,進程同時被運行。
- 使用fork函數(shù),返回值等于0,則表明是子進程;返回值大于0,則表明是父進程。
- 典型的使用fork的方法:區(qū)分當(dāng)前是在子進程還是在父進程,即使用fork后用if判斷返回值,如果返回值大于0時就是在父進程中,等于0時就是在子進程中,然后在各自的{ ?}里再做操作。
- fork的返回值在子進程中等于0,在父進程中等于(本次fork創(chuàng)建的)子進程的進程ID。
3、關(guān)于子進程
(1)子進程和父進程的關(guān)系
- 子進程一旦建立,子進程不再依賴于父進程。
(2)子進程有自己獨立的PCB;
(3)子進程被內(nèi)核同等調(diào)度。
總結(jié)
以上是生活随笔為你收集整理的Linux进程全解4——fork创建子进程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDK8下载安装及配置环境教程,一看就会
- 下一篇: CSDN博客——修改字体、字号与颜色