重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天就跟大家聊聊有关如何用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实现线程池模型效果有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。