相关疑难解决方法(0)

await 总是给其他任务一个执行的机会吗?

我想知道当事件循环切换任务时,python 提供了什么保证。

据我所知async/await从线程显著不同之处在于基于时间分片事件循环不切换任务,这意味着除非任务收益率(await),它会无限期地进行。这实际上很有用,因为在 asyncio 下管理临界区比使用线程更容易。

我不太清楚的是以下内容:

async def caller():
    while True:
        await callee()


async def callee():
    pass
Run Code Online (Sandbox Code Playgroud)

在这个例子中caller是重复的await。所以从技术上讲,它正在屈服。但是我不清楚这是否会允许事件循环上的其他任务执行,因为它只callee屈服于并且永远不会屈服。

也就是说,如果我callee在“关键部分”内等待,即使我知道它不会阻塞,我是否有发生其他意外事件的风险?

python async-await

8
推荐指数
1
解决办法
775
查看次数

标签 统计

async-await ×1

python ×1