原因是第一个任务没有释放事件循环,导致第二个任务无法执行。需要添加await asyncio.sleep(1)或使用async with来释放事件循环。以下是示例代码:
import asyncio
async def task1():
print("Task 1")
await asyncio.sleep(1)
print("Task 1 again")
async def task2():
await asyncio.sleep(2)
print("Task 2")
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(task1(), task2()))
修改后的代码:
import asyncio
async def task1():
print("Task 1")
await asyncio.sleep(1)
print("Task 1 again")
return
async def task2():
await asyncio.sleep(2)
print("Task 2")
return
async def main():
tasks = [task1(), task2()]
await asyncio.gather(*tasks)
asyncio.run(main())
下一篇:Asyncio开始隐藏错误