ITPub博客

首页 > 应用开发 > Python > 【Python】用Python实现一个简单的线程池模型效果代码分析讲解

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

原创 Python 作者:程序员启航 时间:2019-06-27 15:29:13 0 删除 编辑

本文提供给大家的是用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博客 ” ,链接:https://blog.itpub.net/69913713/viewspace-2648936/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
学到,就要分享

注册时间:2019-03-19

  • 博文量
    175
  • 访问量
    241797