python 的os.getpid()和os.fork()函數

來源:互聯網
上載者:User

標籤:

import osimport sysimport timeprocessNmae = ‘parent‘print "Program executing ntpid:%d,processNmae:%s"%(os.gitpid(),processNmae)#attempt to fork child process try:forkPid = os.fork()except OSError:sys.exit("Unable to create new process.")# Am I parent process?if forkPid != 0:print "Parent executingn"+"tpid:%d,forkPid:%d,processNmae:%s"%(os.getpid(), forkPID,processName)# Am I child process?elif forkPID == 0:        processName = "child"        print "Child executingn" + "tpid: %d, forkPID: %d, processName: %s" % (os.getpid(), forkPID,processName)
print "Process finishingntpid: %d, processName: %s" % (os.getpid(), processName)

 程式每次執行時,作業系統就會建立一個新的進程來運行程式指令。進程還可以調用os.fork,要求作業系統建立一個進程。“父進程”是調用os.fork的進程。父進程所建立的任何進程都是子進程。每個進程都有一個不重複的“進程ID號”,或稱“pid”,它對進程進程進行標識。
進程調用fork函數時,作業系統會建立一個子進程,它本質上與父進程完全相同。子進程從父進程繼承了多個值的拷貝,比如全域變數和環境變數。兩個進程唯一的區別就是fork的傳回值。
child(子)進程接收傳回值為0,而父進程接收子進程的pid作為傳回值。調用fork函數後,兩個進程並發執行同一個程式,首先執行的是調用了fork之後的下一行代碼。父進程和子進程既並發執行,又相互獨立;也就是說,它們是“非同步執行”的。

轉自http://www.dajo.com.cn//a/boke/python/2013/1124/135.html

python 的os.getpid()和os.fork()函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.