本文和大家分享的主要是python中使用os.fork() 創(chuàng)建子進(jìn)程相關(guān)內(nèi)容,一起來(lái)看看吧,希望對(duì)大家學(xué)習(xí)python有所幫助。 Linux 操作系統(tǒng)提供了一個(gè) fork() 函數(shù)用來(lái)創(chuàng)建子進(jìn)程,這個(gè)函數(shù)很特殊,調(diào)用一次,返回兩次,因?yàn)椴僮飨到y(tǒng)是將當(dāng)前的進(jìn)程(父進(jìn)程)復(fù)制了一份(子進(jìn)程),然后分別在父進(jìn)程和子進(jìn)程內(nèi)返回。子進(jìn)程永遠(yuǎn)返回0,而父進(jìn)程返回子進(jìn)程的 PID。我們可以通過(guò)判斷返回值是不是 0 來(lái)判斷當(dāng)前是在父進(jìn)程還是子進(jìn)程中執(zhí)行。 在 Python 中同樣提供了 fork() 函數(shù),此函數(shù)位于 os 模塊下。 下面是一個(gè)例子 import os import time print "Before fork process pid=%s, ppid=%s" % (os.getpid(), os.getppid()) pid = os.fork()if pid == 0: print "I am child process pid=%s, ppid=%s" % (os.getpid(), os.getppid()) time.sleep(5)else: print "I am parent process pid=%s, ppid=%s" % (os.getpid(), os.getppid()) time.sleep(5) # 下面的內(nèi)容會(huì)被打印兩次,一次是在父進(jìn)程中,一次是在子進(jìn)程中。print "After fork process pid=%s, ppid=%s" % (os.getpid(), os.getppid()) 運(yùn)行結(jié)果如下: Before fork process pid=18595, ppid=25925 I am parent process pid=18595, ppid=25925 I am child process pid=18596, ppid=18595 After fork process pid=18595, ppid=25925 After fork process pid=18596, ppid=18595 最后,由于 fork() 是 Linux 上的概念,所以如果要跨平臺(tái),最好還是使用 subprocess 模塊來(lái)創(chuàng)建子進(jìn)程。 來(lái)源:kongxx的專欄