新聞中心
首先,在python中我們要實(shí)現(xiàn)多進(jìn)程,有兩個(gè)模塊可以用:
1)os中的fork()函數(shù)
2)multiprocessing模塊

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都做網(wǎng)站,成都app開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。成都創(chuàng)新互聯(lián)公司深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
fork()函數(shù)
函數(shù)原型:
Help on built-in function fork in module posix: fork(...) fork() -> pid Fork a child process. Return 0 to child process and PID of child to parent process.
從fork()函數(shù)原型來看,它也屬于一個(gè)內(nèi)建函數(shù)。
子進(jìn)程永遠(yuǎn)返回0,而父進(jìn)程返回子進(jìn)程的ID。這樣做的理由是,一個(gè)父進(jìn)程可以fork()出很多子進(jìn)程,所以,父進(jìn)程要記下每個(gè)子進(jìn)程的ID,而子進(jìn)程只需要調(diào)用getppid()就可以拿到父進(jìn)程的ID。
相關(guān)推薦:《Python視頻教程》
Python的進(jìn)程函數(shù)fork()是在os模塊,下面是一個(gè)關(guān)于進(jìn)程的例子:
import os print os.getpid() #獲取子進(jìn)程的進(jìn)程號(hào) pid = os.fork() if pid == 0 : print 'I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid()) else : print 'I (%s) just created a child process (%s).' % (os.getpid(), pid)
執(zhí)行結(jié)果:
1526 I (1526) just created a child process (1527). I am child process (1527) and my parent is 1526.
有了fork調(diào)用,一個(gè)進(jìn)程在接到新的任務(wù)時(shí),就可以復(fù)制出一個(gè)子進(jìn)程來處理新任務(wù)。常見的Apache服務(wù)器就是由父進(jìn)程監(jiān)聽端口,一旦有新的http請(qǐng)求時(shí),就fork出子進(jìn)程來處理新的http請(qǐng)求。
再看一個(gè)例子:
#coding=utf-8 import os os.fork() print 1
執(zhí)行結(jié)果:
1 1
程序中,父進(jìn)程中創(chuàng)建了一個(gè)子進(jìn)程,子進(jìn)程運(yùn)行打印了一個(gè)1,回到父進(jìn)程又打印了一個(gè)1,所以結(jié)果是打印了2個(gè)1。
注意:
上面創(chuàng)建進(jìn)程的函數(shù)都是Unix/Linux下的,Windows下是沒有的,那在Windows下又使用什么實(shí)現(xiàn)多進(jìn)程呢?
由于Python是跨平臺(tái)的,自然也應(yīng)該提供一個(gè)跨平臺(tái)的多進(jìn)程支持。multiprocessing模塊就是跨平臺(tái)版本的多進(jìn)程模塊, 支持子進(jìn)程、通信和共享數(shù)據(jù)、執(zhí)行不同形式的同步。
multiprocessing模塊提供了一個(gè)Process類來創(chuàng)建一個(gè)新的進(jìn)程對(duì)象。
相關(guān)推薦:
Python中的多進(jìn)程是什么
分享題目:創(chuàng)新互聯(lián)Python教程:Python中fock()函數(shù)如何使用
當(dāng)前地址:http://m.fisionsoft.com.cn/article/cohdohs.html


咨詢
建站咨詢
