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

本文提供给大家的是用python代码实现一个简单的线程效果源码案例。Python的多线程爬虫一直都是学习python人士相对比较关注的一项

0335e5640e7243076ac99a3783418ab4.png

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的小伙伴!每日分享一些学习的方法和需要注意的小细节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值