玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python源码实例_Python程序源代码_网站项目下载 > 正文内容

用Python实现一个简单的线程池模型效果代码分析讲解

Python入门佳作 经典教程的全新修订 10个项目引人入胜
玩蛇网推荐图文教程:python黑客多线程扫描器

本文提供给大家的是用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 threading多线程模块python queuepython os模块的具体使用方法,可以关注相关文章。

玩蛇网文章,转载请注明出处和来源网址:http://www.iplaypython.com/code/c2697.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网PythonQQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
出炉日期:2015-12-21 14:58 玩蛇网 www.iplaypython.com

我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules