python 系統程式設計之建立程序 create process
阿新 • • 發佈:2019-01-03
一、forking 程序
通過fork產生的程序有以下幾個特點:
- 是一個程序的克隆。
- 建立的程序獨立於父程序單獨存在。
- 執行緒在呼叫fork()那那點被複制執行。
- 在子執行緒中返回0。
- 在父執行緒中返回子執行緒的pid
- 子執行緒的PID不同於父執行緒。
二、程式碼示例
#!/usr/bin/env python
import os
def child_process():
print "I am the child process and my PID is : %d" % os.getpid()
print "teh child is exiting."
def parent_process():
print "I am the parent process whit PID :%d" % os.getpid()
childId = os.fork()
if childId == 0:
#在子程序中
child_process()
else:
#在父程序中
print "inside the parent process"
print "my child's pid is : %d" % childId
while True:
pass
parent_process()
子執行緒結束後,父執行緒依然在執行,並沒有推出。
三、量產新的執行緒
- os.exec* 系列函式
- os.execl
- os.execle
- os.execvp
- 子程序覆蓋父程序
可以發現通過這種方式建立的程序是覆蓋掉了父程序,當子程序結束時,父程序也跟著結束了。