美文网首页
2018-12-08线程

2018-12-08线程

作者: 太阳出来我爬山坡 | 来源:发表于2018-12-18 11:58 被阅读0次

    !/usr/bin/env python

    -- coding:utf-8 --

    Author:Jarry

    '''
    可重复利用的线程
    '''
    from threading import Thread
    from queue import Queue
    import time
    import random

    class MyThread(Thread):
    def init(self):
    Thread.init(self) #继承父类的方法
    self.queue = Queue() #实例化队列
    self.start() #创建就开始启动线程(实例化后),线程启动后 调用run方法,启动后 没有 数据会阻塞.

    start() 调用run 源来父类的方法.

    def run(self):
        while True:  #循环取出任务,执行任务
            fun,args,kwargs =self.queue.get()  #获取队列中的任务
            fun(*args,**kwargs)   #运行任务
            self.queue.task_done()  #发送任务完成信号
    

    def task(info):
    print(info)
    time.sleep(random.randint(1, 3))

    if name == 'main':
    t = MyThread() #实例化一个线程
    for i in range(3):
    t.queue.put((task,(i, ),{}))

     t.queue.join()  #阻塞,queue的计数器为0的时候就解阻塞。。
    

    相关文章

      网友评论

          本文标题:2018-12-08线程

          本文链接:https://www.haomeiwen.com/subject/ssnqhqtx.html