python - 当超过 100 个异步函数运行时锁定异步函数?

标签 python python-asyncio

这将是一个糟糕的解释,但我不知道还能用什么语言来表达,所以请耐心等待。 我有一个功能:

async def request():
    # this can only be called n times at once

但正如它所说,它一次只能被调用 n 次。是否可以有某种对象数量有限的池,这样我就可以做到这一点:

async def request():
    await with poolOfOneHundred.acquire():
        # do something

然后Python将获取其中的100个,然后一旦到达第101个,它将在await with语句处等待,直到另一个request()函数完成,然后池中的一个锁将被释放。

这是一件事吗?如果没有,我该如何实现这样的事情?

这有意义吗?

最佳答案

您正在寻找asyncio.Semaphore .

这是an example如何使用它。

关于python - 当超过 100 个异步函数运行时锁定异步函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811985/

相关文章:

python - 了解 Python 上下文变量

Python - asyncio - 在回调中等待 future

python - YAML - 替换变量的值?

python - 如何在 while 循环中使用 raw_input()

python - 使用 sympy 集成指数函数

Python 异步调试示例

python - 只要有待处理的取消屏蔽任务,但不再存在,我如何运行 asyncio 循环?

python - PyQt5 和异步 : yield from never finishes

Python RegEx 与 Beautifulsoup 4 不起作用

python - 无法调用canvas.show()