from threading import Thread
from queue import Queue
import time
class ThreadPool:
def __init__(self,n):
self.queue = Queue()
for i in range(n):
Thread(target = self.worker,daemon = True).start()
def worker(self):
while True:
func,args,kwargs = self.queue.get()
func(*args,*kwargs)
self.queue.task_done()
def apply_async(self,target,args = (),kwargs = {}):
self.queue.put((target,args,kwargs))
def join(self):
self.queue.join()
def fun(x):
print('hello 第%s次'%x)
time.sleep(3)
print('帅哥美女就给点赞啦!')
t = ThreadPool(2)
for i in range(10):
t.apply_async(fun,args = (i,))
t.join()
python常用模块(ThreadPool)之简单的自定义线程池实现多线程
猜你喜欢
转载自blog.csdn.net/qq_44907926/article/details/104638252
今日推荐
周排行