进程的创建-fork
生活随笔
收集整理的這篇文章主要介紹了
进程的创建-fork
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.fork是linux/unix中專有的用來創建進程的系統調用。
2.在linux/unix系統中,提供fork()系統函數,非常特殊。普通的系統調用,調用一次就返回一次,而fork()調用一次,會返回兩次,一次是當前進程(父進程),另一個是子進程(即由當前進程復制的一份),然后,分別獨自運行,互不干擾,調用的先后順序由操作系統的調度算法決定。
3.其中需要注意,子進程永遠返回0,而父進程則返回子進程的ID(>0的數)。這樣做的原因是因為:一個父進程可以fork出很多子進程,父進程需要記下每個子進程的ID,而子進程的父進程是唯一的,只需要調用getppid()就可以拿到父進程的ID。
4.fork出兩個進程時,是相互獨立運行的,享有相同的數據資源,因而一個進程對全局變量的更改,并不會影響到另一個進程里全局變量的變化。
5.在一個程序里,如果有多次fork調用,則會產生多個進程(一般為2^n),由此,可能會出現“fork炸彈”,即無限次的調用fork產生進程,不斷占用內存,最后導致奔潰。即
import os
while True:
? ? os.fork()
?
?
總結
以上是生活随笔為你收集整理的进程的创建-fork的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OCP12C题库,62数据库备份与恢复(
- 下一篇: LeetCode刷题之旅