首页 > 编程语言 > 详细

python 多线程模板简单实现

时间:2019-03-12 10:08:03      阅读:228      评论:0      收藏:0      [点我收藏+]
#-*- encoding: UTF-8 -*-
#编码声明

import threading,Queue,os
import time
#导入方法模块

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(Worker,self).__init__()
        self.work_queue = work_queue
        self.number = number

    def process(self,elemt):
        #自定义的线程处理函数,用于run()中.
        #这里仅仅打印线程号和传入参数
        time.sleep(5)
        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 多线程模板简单实现

原文:https://www.cnblogs.com/chbo/p/10514723.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!