import threading
import time
def longIO():
print('开始耗时操作')
time.sleep(5)
print('结束耗时操作')
yield 'brotech is good'
def genCoroutine(func):
def wrapper():
gen1 = func()
gen2 = next(gen1)
def run(g):
res = next(g)
try:
gen1.send(res)
except StopIteration as e:
pass
threading.Thread(target=run, args=(gen2,)).start()
return wrapper
@genCoroutine
def reqA():
print('开始处理reqA')
res = yield longIO()
print('接收到longIo的响应数据:', res)
print('结束处理reqA')
def reqB():
print('开始处理B')
print('结束处理B')
def main():
# global gen
# gen = reqA()
# next(gen)
reqA()
reqB()
if __name__ == '__main__':
main()
协程-装饰器-异步
最新推荐文章于 2024-07-14 22:18:32 发布