在利用python進行系統管理的時候,特別是同時操作多個檔案目錄,或者遠端控制多台主機,並行操作可以節約大量的時間。當被操作物件數目不大時,可以直接利用multiprocessing中的process動態成生多個程序,10幾個還好,但如果是上百個,上千個目標,手動的去限制程序數量卻又太過繁瑣,這時候程序池pool發揮作用的時候就到了。
pool可以提供指定數量的程序,供使用者呼叫,當有新的請求提交到pool中時,如果池還沒有滿,
那麼就會建立乙個新的程序用來執行該請求;但如果池中的程序數已經達到規定最大值,
那麼該請求就會等待,直到池中有程序結束,
才會建立新的程序來它。這裡有乙個簡單的例子:
#!/usr/bin/env python
#coding=utf-8
from
multiprocessing
import
pool
from
time
import
sleep
def
f(x):
for
i
in
range
(
10
):
print
'%s --- %s '
%
(i, x)
sleep(
1
)
def
main():
pool
=
pool(processes
=
3
)
# set the processes max number 3
for
i
in
range
(
11
,
20
):
result
=
pool.close()
pool.join()
if
result.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模組用來開啟子程序,並在...