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

Posted 山上有风景

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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):

 

以上是关于python---基础知识回顾进程和线程(自定义线程池,上下文管理器和协程的使用)的主要内容,如果未能解决你的问题,请参考以下文章

python---基础知识回顾进程和线程

Python之路,day11-Python基础

Java知识回顾 (10) 线程

多线程知识回顾

Java基础知识回顾之五 ----- 多线程

python全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python理论知识,线程的创建)