Python之创建low版的线程池

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之创建low版的线程池相关的知识,希望对你有一定的参考价值。

#!/user/bin/evn python
# -*- coding:utf-8 -*-
import threading,time
import queue
#创建线程池类
class ThreadPool(object):
    def __init__(self,max_num=20):
        #创建队列
        self.queue=queue.Queue(max_num)
        for i in range(max_num):
            #往队列里面依次放入20个线程类名(threading.Thread)
            self.queue.put(threading.Thread)
    
     #获取线程的方法       
    def get_thread(self):
        #从队列里面依次取出线程名
        return self.queue.get()
    #添加线程名到队列里面
    def add_thread(self):
        self.queue.put(threading.Thread)

def func(p,i):
    time.sleep(1)
    print(i)
    p.add_thread()

#创建线程池对象
p=ThreadPool()

for i in range(100):
    ret=p.get_thread()#获取线程类名
    t=ret(target=func,args=(p,i,))#创建线程对象
    t.start()#线程开始执行

 

以上是关于Python之创建low版的线程池的主要内容,如果未能解决你的问题,请参考以下文章

Linux(程序设计):66---简略版的线程池设计

Python并发编程之线程池/进程池--concurrent.futures模块

小白成长之路:初识python --python线程池

多线程之线程池

python之IO model

python 之 线程池实现并发