1. 程式人生 > >創建一個新的進程os.fork

創建一個新的進程os.fork

*** 獨立 fork 代碼段 空間 命令 全部 進程空間 id號

import os

pid = os.fork()
功能:創建新的進程
參數:無
返回值:失敗返回一個負數
成功:在原有進程中返回一個新的進程的PID號
在新的進程中返回0

*子進程會復制父進程全部代碼段,包括fork之前產生的內存空間
*子進程從fork的下一句開始執行,與父進程互補幹擾
*父子進程的執行順序是不一定的,父子進程公用一個終端顯示
*父子進程通常會根據fork返回值得差異選擇執行不同的代碼。所以if結構幾乎是fork的固定搭配
*父子進程空間獨立,操作的都是本空間的內容,互補影響
*子進程也有自己的特性,比如PID號,PCB,命令集等

import os
from time import sleep

print("***********************")
a = 1
pid = os.fork()

if pid < 0:
    print("創建進程失敗")
elif pid == 0:
    print("這是一個新的進程")
    print("a=",a)
    a = 10000
else:
    sleep(1)
    print("這是原有的進程")
    print("parent a = ", a)
print("演示完畢")

創建一個新的進程os.fork