from queue import Queue from threading import Thread import time class pool(object): def __init__(self,n):#线程的数量 self.q=Queue()#放任务的队列 for i in range(n):#创建线程 Thread(target=self.worker,daemon=True).start()#开启线程 #志向方法 函数名 设置守护进程 def worker(self):#取任务来执行,不需要给参数 while True:#一直循环 func = self.q.get()#取任务 func()#执行函数 self.q.task_done()#执行完毕 def put_q(self,func):#放任务 #向面向加入要执行的任务函数 self.q.put(func) def join_q(self): self.q.join()#阻塞等待任务完成 def task1():#任务1 print('lgo...') time.sleep(2) print('lend..') def task2():#任务2 print('2go...') time.sleep(2) print('2end...') if __name__ == '__main__': pool =pool(2)#创建2个线程 进入阻塞 等待任务 pool.put_q(task1)#发布任务 pool.put_q(task2)#发布任务 print('完成') pool.join_q()#阻塞 print('都ok')
多线程模板
最新推荐文章于 2024-07-08 00:01:13 发布