小编Sem*_*nDr的帖子

调用异步函数时如何防止上下文切换?

如果我使用异步函数,那么堆栈上方的所有函数也应该是异步的,并且其调用之前应带有await关键字。此示例使用应用程序的多个体系结构层模拟现代程序:

async def func1():
    await asyncio.sleep(1)

async def func2():
    await func1()

async def func3():
    await func2()

async def func4():
    await func3()

async def func5():
    await func4()
Run Code Online (Sandbox Code Playgroud)

当执行线程遇到“等待”时,它可以切换到另一个协程,这需要用于上下文切换的资源。由于存在大量相互竞争的规则和不同级别的抽象,这些开销可能开始限制整个系统的性能。但是在给出的示例中,仅在一种情况下在线切换上下文是有意义的:

await asyncio.sleep(1)
Run Code Online (Sandbox Code Playgroud)

如何禁止某些异步功能的上下文切换?

python asynchronous python-3.x async-await python-asyncio

5
推荐指数
1
解决办法
399
查看次数