python在新建线程的时候,每次都要将函数封装成threading对象才能执行,考虑到python还提供了装饰器功能,不如把这两个功能结合一下,以后再编写需要新建线程运行的函数时,直接@一下装饰器就可以了。
#import threading
#from functools import wraps
import time
def new_thread(func):
import threading
from functools import wraps
@wraps(func)
def inner(*args, **kwargs):
# print(f'函数的名字:{func.__name__}')
# print(f'函数的位置参数:{args}')
thread = threading.Thread(target=func, args=args,kwargs=kwargs)
thread.start()
return inner
@new_thread
def greeting(name):
print(f'你好啊,{name}!')
time.sleep(3)
print(f'再见了,{name}.')
if __name__=="__main__":
greeting('老张')
greeting('小李')
greeting('老刘')
输入
你好啊,老张!
你好啊,小李!
你好啊,老刘!
再见了,小李.
再见了,老张.
再见了,老刘.