gpt4 book ai didi

python - 异步任务取消。是同步的吗?

转载 作者:行者123 更新时间:2023-12-01 07:33:57 30 4
gpt4 key购买 nike

我知道 task.cancel() 会安排在任务函数内抛出异常。这是以同步方式发生的吗? (因为我不等待 task.cancel())。 task.cancel() 行后面的代码是否可以假设该任务将不再运行?

一个简单的例子:

async def task1():
await asyncio.sleep(3)
print("after sleep")

async def task2():
t = loop.create_task(task1())
await asyncio.sleep(1)
t.cancel()
# can the following code lines assume that task1 is no longer running?

loop = asyncio.get_event_loop()
loop.run_forever()

最佳答案

Can code that follows the line task.cancel() assume that the task will no longer run?

没有。 task.cancel() 仅标记稍后取消的任务。您应该在任务之后显式等待任务并捕获 CancelledError 以确保任务被取消。

参见example here .

关于python - 异步任务取消。是同步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57089430/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com