lihu5841314 发表于 2021-6-24 11:20

线程装饰器 发现挺好用的

from threading import Thread
importtime

def cal_back(func):
    def marge(*args):
      t = Thread(target=func,args=(*args,))#第一个参数是线程函数变量,第二个参数args是一个数组变量参数,如果只传递一个值,就只需要i, 如果需要传递多个参数,那么还可以继续传递下去其他的参数,其中的逗号不能少,少了就不是数组了,就会出错。
      print(func.__name__,"正在开启线程")   #func.__name__获取 函数名字
      t.start()
    return marge

@cal_back
defpig(a,b,c):
   sum = a + b+ c
   time.sleep(2)
   print(sum)


@cal_back
defnumbe():
   time.sleep(3)
   fory in range(100):
          print(y)

if __name__ == '__main__':
   start = time.time()
   pig(5,6,9)
   numbe()
   foriin range(100):
         print(i)
   print(time.time()-start)

细水流长 发表于 2021-6-24 11:23

lihu5841314 发表于 2021-6-24 11:28

细水流长 发表于 2021-6-24 11:23
如何判断所有线程都执行完了?

直接把主线程阻塞

playjobs 发表于 2021-6-24 15:41

楼主你说的是阻塞单线程(join)还是??

lihu5841314 发表于 2021-6-24 21:02

playjobs 发表于 2021-6-24 15:41
楼主你说的是阻塞单线程(join)还是??

join 应该不能用直接time.sleep
页: [1]
查看完整版本: 线程装饰器 发现挺好用的