使用 multiprocessing 裡的 Queue()
import multiprocessing def download_from_web(q): """下載資料""" # 模擬從網上下載的資料 data = [11, 22, 33, 44] # 向佇列中寫入資料 for temp in data: q.put(temp) print("下載器已經下載完了資料並且存入到佇列中") def analysis_data(q): """資料處理""" waiting_analysis_data = list() while True: # 從佇列中獲取資料 data = q.get() waiting_analysis_data.append(data) # 判斷佇列是否為空 if q.empty(): break # 模擬資料處理(如單核CPU只能列印[11]) print(waiting_analysis_data) def main(): # 1.建立一個佇列 q = multiprocessing.Queue() # 2.建立多個程式,將佇列的引用當做實參進行傳遞到裡面 p1 = multiprocessing.Process(target=download_from_web, args=(q,)) p2 = multiprocessing.Process(target=analysis_data, args=(q,)) p1.start() p2.start() if __name__ == "__main__": main()