【Python】用Python實現一個簡單的執行緒池模型效果程式碼分析講解

程式設計師啟航發表於2019-06-27

本文提供給大家的是用python程式碼實現一個簡單的執行緒效果原始碼案例。Python的多執行緒爬蟲一直都是學習python人士相對比較關注的一項

【Python】用Python實現一個簡單的執行緒池模型效果程式碼分析講解

python簡單執行緒模型程式碼正文部分如下:

`#-*- encoding: UTF-8 -*-`
`#編碼宣告`
`import` `threading,queue,os`
`#匯入方法模組`
`def` `main(inargs):`
`work_queue` `=` `queue.Queue()` `#queue類中實現了鎖`
`for` `i` `in` `range``(``3``):``#設定了3個子程式`
`worker` `=` `Worker(work_queue,i)` `#工作執行緒、工作佇列、執行緒編號`
`worker.daemon` `=` `True`                  `#守護程式`
`worker.start()` `#啟動執行緒開始`
`for` `elemt` `in` `inargs:`
`work_queue.put(elemt)` `#加入到佇列中開始各個執行緒`
`work_queue.join()` `#佇列同步`
`class` `Worker(threading.Thread):`
`#繼承執行緒類,類也是不太好學習的部分`
`def` `__init__(``self``, work_queue,number):`
`super``().__init__()`
`self``.work_queue` `=` `work_queue  `
`self``.number` `=` `number`
`def` `process(``self``,elemt):`
`#自定義的執行緒處理函式,用於run()中.`
`#這裡僅僅列印執行緒號和傳入引數`
`print``(``"\n{0}  task:----{1}"``.``format``(``self``.number,elemt))`
`def` `run(``self``):`
`#過載threading類中的run()`
`while` `True``:`
`try``:`
`elemt` `=` `self``.work_queue.get()` `#從佇列取出任務`
`self``.process(elemt)`
`finally``:`
`self``.work_queue.task_done()` `#通知queue前一個task已經完成`
`if` `__name__``=``=``"__main__"``:`
`main(os.listdir(``"."``))`
`#這一步是用當前目錄下得檔名作測試`


大家在學python的時候肯定會遇到很多難題,以及對於新技術的追求,這裡推薦一下我們的Python學習扣qun:784758214,這裡是python學習者聚集地!!同時,自己是一名高階python開發工程師,從基礎的python指令碼到web開發、爬蟲、django、資料探勘等,零基礎到專案實戰的資料都有整理。送給每一位python的小夥伴!每日分享一些學習的方法和需要注意的小細節


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2648936/,如需轉載,請註明出處,否則將追究法律責任。

相關文章