简单理解用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模块的具体使用方法,可以关注相关文章。


分享到:


相關文章: