import asyncio,time
async def task_one():
while True:
await asyncio.sleep(0.1) # 增加适当延迟
print('signal')
async def task_two():
flag=0
while True:
await asyncio.sleep(0.00001)
print(2)
flag+=1
if flag==100:break
async def main():
task1 = asyncio.create_task(task_one())
task2 = asyncio.create_task(task_two())
# 监控 task2 是否完成(包括被取消)
async def monitor_task2():
await task2
task1.cancel() # task2 完成后立即取消 task1
# 等待所有任务结束(task1、task2 和取消逻辑)
monitor = asyncio.create_task(monitor_task2())
await asyncio.gather(task1, task2, monitor, return_exceptions=True)
asyncio.run(main())