python常用模块(ThreadPool)之简单的自定义线程池实现多线程

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()
发布了65 篇原创文章 · 获赞 50 · 访问量 3597

猜你喜欢

转载自blog.csdn.net/qq_44907926/article/details/104638252