1. 程式人生 > >python 系統程式設計之建立程序 create process

python 系統程式設計之建立程序 create process

一、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()

res

子執行緒結束後,父執行緒依然在執行,並沒有推出。

三、量產新的執行緒

  • os.exec* 系列函式
    • os.execl
    • os.execle
    • os.execvp
  • 子程序覆蓋父程序
    exec

可以發現通過這種方式建立的程序是覆蓋掉了父程序,當子程序結束時,父程序也跟著結束了。