Python多進程使用隊列共享數據協同判斷素數

  • 2019 年 12 月 13 日
  • 筆記

感謝江西師範大學李雪斌老師提供素材和第一版本程式碼。

問題描述:

創建兩個隊列,qIn用來存儲指定範圍內的整數,qOut用來存放該範圍內的所有素數。創建多個進程,每個進程依次從qIn隊列中獲取整數,並判斷是否為素數,如果是素數則存入qOut。

技術要點:

1)使用Python標準庫multiprocessing創建和管理進程;

2)使用multiprocessing.Manager對象提供的Queue類創建隊列,不要使用multiprocessing提供的Queue,否則當問題規模大到一定程度時可能會發生死鎖。

參考程式碼(該程式需要在cmd命令提示符環境運行):