码迷,mamicode.com
首页 > 编程语言 > 详细

python---基础知识回顾(十)进程和线程(自定义线程池,上下文管理器和协程的使用)

时间:2018-05-11 00:48:54      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:阻塞   基础知识   设置   printf   elf   div   name   __name__   简单   

前戏:

在进行自定义线程池前,先了解下Queue队列

队列中可以存放基础数据类型,也可以存放类,对象等特殊数据类型

from queue import Queue

class T:
    def __init__(self,num):
        self.num = num

    def printf(self):
        print(self.num,id(self.num))

if __name__ == "__main__":
    queue = Queue(0)

    num = 12
    queue.put(num)  #可以存放基础数据类型


    t = T(num)
    queue.put(t)    #可以存放对象

    cls = T
    queue.put(cls)  #可以存放类

    dt = queue.get()
    print(id(dt),dt,type(dt))   #1385649280 12 <class int>

    dt = queue.get()
    print(id(dt),dt,type(dt))   #7652128 <__main__.T object at 0x000000000074C320> <class __main__.T>

    dt = queue.get()
    print(id(dt),dt,type(dt))   #18042264 <class __main__.T> <class type>

 

线程池应该具备的功能:

  1. 先创建线程池,
  2. 之后去获取数据的时候,若是有直接拿走
  3. 若是没有,需要去阻塞等待,直到有数据到达
  4. 线程池可以设置指定大小
  5. 满足上面“阻塞”要求,设置大小,的数据结构,我们可以使用Queue队列

简单版本(Low):

 

python---基础知识回顾(十)进程和线程(自定义线程池,上下文管理器和协程的使用)

标签:阻塞   基础知识   设置   printf   elf   div   name   __name__   简单   

原文地址:https://www.cnblogs.com/ssyfj/p/9022472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!