Python多线程执行队列任务,提高效率开发

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import threading
import time
import queue


# 创建一个线程类并继承threading.Thread
class MyThread(threading.Thread):
    def __init__(self, name):             # 重写init和run方法(参数:线程名称)
        threading.Thread.__init__(self)
        self.Name = name

    def run(self):
        print('开启的线程是:', self.Name)
        while not workQueue.empty():  # 循环队列任务
            index = workQueue.get()
            nowTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
            print('%s - %s线程正在执行第%d个任务' % (nowTime, self.Name, index))
        print('结束的线程是:', self.Name)


numList = [i for i in range(0, 100)]   # 任务列表
workQueue = queue.Queue(len(numList))  # 创建队列

if __name__ == '__main__':

    # 填充队列,将任务塞进队列执行
    for num in numList:
        workQueue.put(num)

    # 创建线程
    threads = []
    threadsName = ['一号线程', '二号线程', '三号线程']
    for tName in threadsName:
        thread = MyThread(tName)
        thread.start()             # 执行线程
        threads.append(thread)

    # 等待所有线程执行完成
    for i in threads:
        i.join()

    print('全部执行完成!')

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值