1. 程式人生 > >python多執行緒的queue()

python多執行緒的queue()

   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]]