簡單理解用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 threading多線程模塊、python queue、python os模塊的具體使用方法,可以關注相關文章。


分享到:


相關文章: