Python 多程序程序池Queue程序通訊

2022-09-17 16:45:21 字數 787 閱讀 2008

from multiprocessing import

pool,manager

import

time

defhanshu(queue,a):

n = 1

while n<50:

#print('\r正在工作%d'%a,end='')

n+=1

#【步驟3】往佇列中傳送一條訊息

queue.put(a)

time.sleep(2)

defmain():

print('

執行main函式')

for i in range(0,10):

【步驟2】向程序池中新增任務,hanshu是做任務的函式,(i,)是傳參,是個元組 q是佇列

if__name__ == '

__main__':

q=manager().queue() #

使用manager中的queue方法 【步驟1】建立乙個佇列

po = pool(10) #

建立程序池 並限定最多同時執行10個程序

main()

print('

---start-----')

po.close()

#關閉程序池不再接受新的程序任務

#po.join() #等待程序池裡面的任務完成

while

true:

name=q.get()

print('

\r收到訊息 與任務不堵塞

',name ,end='')

python 多程序 高階 程序間通訊之Queue

假如建立了大量的程序,那程序間通訊是必不可少的。python提供了多種程序間通訊的方式,如 queue和pipe方法。他們兩者的區別在於pipe常用來在兩個程序間通訊,queue用來在多個程序間實現通訊 queue是多程序安全的佇列,可以使用queue實現多程序之間的資料傳遞。有兩個方法 put 和...

python多程序之程序池

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

python 多程序 高階 程序池

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