闲来无事写一个试试,在程序中使用还需要改一些地方地方
import threading import queue import time q = queue.Queue(maxsize=10) def create_threading(num,func,data): for i in range(num): t = threading.Thread(target=func,args=(data,)) t.start() def q_get_do(num,func): while True: if q.qsize() > 0: get_data = q.get() data = create_threading(num=num,func=func,data=get_data) return data else: time.sleep(1) def q_put(data): q.put(data) def set_func(thread_num): def de_func(func): def blu_func(*args,**kwargs): print("a") del_data = q_get_do(num=thread_num,func=func) q.put(del_data) # ret = func(*args,**kwargs) print("b") return del_data return blu_func return de_func @set_func(thread_num=2) def func(num): for i in range(10): import time print(num) time.sleep(1) print(i) for i in range(10): time.sleep(0.5) q.put(1) func(2)