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

multithreadpool

先來看一下執行 Multi-threading Pool (多執行緒池/多線程池) 後,可以將每一個頁面原本需要等待 15 s 才能載入完畢並爬取的頁面,降至 3.9 秒 (10 threading pool) ~ 2.28 秒(25 threading pool),但是多線程池的使用要非常留意 tread-safe 問題 ,不小心就會像上面圖片一樣,想像中大家是各自完成任務,但實際上是亂七八糟的執行任務。

threadpool_times
threading-pool times

Multi-threading Pool 實現方法一

首先install threadpool,這是個最後更新時間在2015年的套件目前已經沒有人維護了,但使用起來相當簡單和方便,目前python3.7版本使用上沒有問題。

多線池程式如下,將要執行的主程式放在main的位置,而list_of_args則是給threadpool要放入的參數,如果是單一參數以list = [‘A’,’B’,’C’]帶入即可
如果list_of_args要放入多參數的話,須以下列格式放入:
我最終的寫法是這樣,一個是url的參數,一個是ip的參數
 

Multi-threading Pool 實現方法二

但我個人比較推薦的是multiprocessing.dummy,因為他跟進程池只差在dummy的不同,所以在切換上還蠻方便的!

multiprocessing.dummy 多線池

multiprocessing 進程池

最後~

▍關於與 Concurrency Programming 相關其他文章,可以參考:

▍關於 Async IO 相關其他文章,可以參考:

那麼有關於【Python教學】淺談 Multi-threading Pool 使用方法 的介紹就到這邊告一個段落囉!有任何問題可以在以下留言~

有關 Max行銷誌的最新文章,都會發佈在 Max 的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *