python 多线程装饰器 用装饰器写一个可以用队列和多线程执行的方法,

闲来无事写一个试试,在程序中使用还需要改一些地方地方

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)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值