mutli_processing_pool

【Python教學】淺談 Multi-processing pool 使用方法

發佈於 發佈留言分類: 02 Python 基礎教學03 Python 爬蟲教學10 所有文章

一. 簡單的 Multi-processing pool 範例 使用 Python 標準庫內 multiprocessing 寫一個 multi-processing pool (多處理程序池 / 多進程池),簡單的範例如下: 二. 建議使用處理程序 (process) 數量 可使用 multiprocessing.cpu_count() 或 os.cpu_count() 來獲取當前機器的 CPU 核心數量。 假設目前 CPU 是四核,那麼 process 設定如果超過 4 的話,代表有個核會同時運行 2 個以上的任務,而 CPU 之間程序處理會切換造成本進而降低處理效率,所以建議設置 process 時,最好等於當前機器的 CPU 核心數量。 三. 了解 pool 能調用的方法(met […]

multithreadpool

【Python教學】淺談 Multi-threading Pool 使用方法

發佈於 發佈留言分類: 03 Python 爬蟲教學10 所有文章

先來看一下執行 Multi-threading Pool (多執行緒池/多線程池) 後,可以將每一個頁面原本需要等待 15 s 才能載入完畢並爬取的頁面,降至 3.9 秒 (10 threading pool) ~ 2.28 秒(25 threading pool),但是多線程池的使用要非常留意 tread-safe 問題 ,不小心就會像上面圖片一樣,想像中大家是各自完成任務,但實際上是亂七八糟的執行任務。 Multi-threading Pool 實現方法一 首先install threadpool,這是個最後更新時間在2015年的套件目前已經沒有人維護了,但使用起來相當簡單和方便,目前python3.7版本使用上沒有問題。 pip install threadpool 多線池程 […]