本文提供給大家的是用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 threading多線程模塊、python queue、python os模塊的具體使用方法,可以關注相關文章。
閱讀更多 Python樂園 的文章