Multiprocessing多程序 (總結)

2021-10-01 20:32:46 字數 946 閱讀 9118

queue的功能是將每個核或執行緒的運算結果放在隊裡中, 等到每個執行緒或核執行完畢後再從佇列中取出結果, 繼續載入運算。原因很簡單, 多執行緒呼叫的函式不能有返回值, 所以使用queue儲存多個執行緒運算的結果

**

import multiprocessing as mp

def job(q):

res=0

for i in range(1000):

res+=i+i**2+i**3

q.put(res) #queue

if __name__=='__main__':

q = mp.queue()

p1 = mp.process(target=job,args=(q,))

p2 = mp.process(target=job,args=(q,))

p1.start()

p2.start()

p1.join()

p2.join()

res1 = q.get()

res2 = q.get()

print(res1+res2)

執行結果

499667166000
1、可以同時使用q = mp.queue(),q2 = mp.queue(),兩個佇列不會衝突和干擾

2、佇列使用put()放入資料,放入的資料可以是數字、字元、陣列等

3、佇列放入的資料,不使用get()的取出的話就一直存放在佇列中,取出之後,不會再有。先進先出,先進後出請再查閱相關資料。

4、

multiprocessing共享記憶體

這裡我們實際上只有主程序和process物件代表的程序。我們在主程序的記憶體空間中建立共享的記憶體,也就是value和array兩個物件。物件value被設定成為雙精度數 d 並初始化為1.0。而array則類似於c中的陣列,有固定的型別 i,也就是整數 在process程序中,我們修改了value...

程序 multiprocessing詳解

一 核心 就是像執行緒一樣管理程序 類似於threading cup利用率較好,該模組用來跨平台的多程序模組,含有乙個process 類代表程序物件,start 啟動程序 process語法結構如下 process group target name args kwargs target 表示這個程...

正確使用 Multiprocessing 的姿勢

import multiprocessing as mp 要執行的任務函式 def task pid,name print pid pid,name name return str pid name def main pool mp.pool cpus mp.cpu count res list l...