python多執行緒的queue()
阿新 • • 發佈:2018-12-16
queue可以傳遞多執行緒的結果,用以代替return。
下例中,輸入4組資料,開啟4個執行緒分別對資料進行計算,然後將結果放入queue中。執行緒結束後,在主執行緒中從queue中獲取計算結果。
import threading import time; from queue import Queue def job(vec,res): for i in range(len(vec)): vec[i] = vec[i]*2 res.put(vec) def main(): res = Queue() data=[[1,2,3],[3,4,5],[2,2,2],[3,3,3]] for i in range(len(data)): t=threading.Thread(target=job,args=(data[i],res)) t.start() t.join() result =[] for j in range(len(data)): result.append(res.get()) print(result) if __name__ == '__main__': main()
輸出結果
[[2, 4, 6], [6, 8, 10], [4, 4, 4], [6, 6, 6]]