zoukankan      html  css  js  c++  java
  • python 多线程模板简单实现

    #-*- 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("
    {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("."))
        #这一步是用当前目录下得文件名作测试
  • 相关阅读:
    Run command in YMAL build pipeline or Release Pipeline
    Create Pipeline for Azure Apps
    Deploy Azure App Service with VS Code
    多线程总结笔记
    @Param注解
    Mac Idea2018.1破解
    空指针异常Caused by: java.lang.NullPointerException: null
    java集合面试题
    在IntelliJ IDEA中使用git
    分支管理
  • 原文地址:https://www.cnblogs.com/chbo/p/10514723.html
Copyright © 2011-2022 走看看