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

前戏:

在进行自定义线程池前,先了解下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):

猜你喜欢

转载自www.cnblogs.com/ssyfj/p/9022472.html