Python多程序併發操作中程序池Pool的應用

2021-09-24 13:45:33 字數 2037 閱讀 6820

在利用python進行系統管理的時候,特別是同時操作多個檔案目錄,或者遠端控制多台主機,並行操作可以節約大量的時間。當被操作物件數目不大時,可以直接利用multiprocessing中的process動態成生多個程序,10幾個還好,但如果是上百個,上千個目標,手動的去限制程序數量卻又太過繁瑣,這時候程序池pool發揮作用的時候就到了。

pool可以提供指定數量的程序,供使用者呼叫,當有新的請求提交到pool中時,如果池還沒有滿,

那麼就會建立乙個新的程序用來執行該請求;但如果池中的程序數已經達到規定最大值,

那麼該請求就會等待,直到池中有程序結束,

才會建立新的程序來它。這裡有乙個簡單的例子:

#!/usr/bin/env python

#coding=utf-8

frommultiprocessingimportpool

fromtimeimportsleep

deff(x):

foriinrange(10):

print'%s --- %s '%(i, x)

sleep(1)

defmain():

pool=pool(processes=3)# set the processes max number 3

foriinrange(11,20):

result=

pool.close()

pool.join()

ifresult.successful():

print'successful'

if__name__=="__main__":

main()

python中multiprocessing.pool函式介紹

l = range(10)

def gen_list(l):

for x in l:

print 'yield', x

yield x

def pool_test(x):

print 'f2', x

time.sleep(1)

我可以輸,但我不會認輸

Python多程序併發操作中程序池Pool的應用

出自 squall liu 在利用python進行系統管理的時候,特別是同時操作多個檔案目錄,或者遠端控制多台主機,並行操作可以節約大量的時間。當被操作物件數目不大時,可以直接利用multiprocessing中的process動態成生多個程序,10幾個還好,但如果是上百個,上千個目標,手動的去限制...

python多程序併發

由於python下呼叫linux的shell命令都需要等待返回,所以常常我們設定的多執行緒都達不到效果,因此在呼叫shell命令不需要返回時,使用threading模組並不是最好的方法。python提供了非常好用的多程序包multiprocessing,你只需要定義乙個函式,python會替你完成其...

python併發之多程序

一 multiprocessing模組介紹 python中的多執行緒無法利用多核優勢,如果想要充分地使用多核cpu的資源 os.cpu count 檢視 在python中大部分情況需要使用多程序。python提供了multiprocessing。multiprocessing模組用來開啟子程序,並在...