Python 程序,程序池

2021-09-01 12:58:23 字數 908 閱讀 6568

注意:程序池中的程序如果發生異常時,主程序中並不會得到異常提示。

如果程序池中的程序要使用佇列(queue)實現程序間通訊,必須使用queue = multiprocessing.manager().queue() 的方式建立佇列(需要先導入multiprocessing模組)。

demo.py(程序池):

# -*- coding:utf-8 -*-

from multiprocessing import pool

import os, time, random

def worker(msg):

t_start = time.time()

print("%s開始執行,程序號為%d" % (msg,os.getpid()))

# random.random()隨機生成0~1之間的浮點數

time.sleep(random.random()*2)

t_stop = time.time()

print(msg,"執行完畢,耗時%0.2f" % (t_stop-t_start))

po = pool(3) # 定義乙個程序池,最大程序數3

# 向程序池中迴圈新增10個任務

for i in range(0,10):

# 每次迴圈將會用空閒出來的子程序去呼叫目標

print("----start----")

po.close() # 關閉程序池,關閉後po不再接收新的任務請求

po.join() # 等待po程序池中所有子程序執行完成,必須放在close語句之後 (主程序結束後,程序池就會結束,程序池中的任務也會結束。 所以在結束主程序之前,先等待程序池中的任務執行完成)

print("-----end-----")

python 程序 Python程序池

當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。初始化pool時,可以指定乙個最大程序數,當有新的請求提交到poo...

python多程序之程序池

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

python 多程序 高階 程序池

如果需要啟動大量的子程序,使用程序池批量建立子程序的方式更加常見,因為當被操作對物件數目不大時,可以直接利用multiprocessing中的process動態生成多個程序,如果數量大,此時就應該使用pool。pool 可以提供指定數量的程序供使用者呼叫,預設大小是cpu的核數。當有新的請求提交到p...