2018-12-08线程

!/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的时候就解阻塞。。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 3,055评论 0 9
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,926评论 0 10
  • 一文读懂Python多线程 1、线程和进程 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运...
    星丶雲阅读 1,524评论 0 4
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,267评论 4 16
  • 线程 操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有...
    go以恒阅读 1,711评论 0 6