同步原语

源代码: Lib/asyncio/locks.py


asyncio 同步原语的设计类似那些在 threading 模块有 2 个重要告诫:

  • asyncio 原语不是线程安全的,因此,它们不应用于 OS 线程同步 (使用 threading 为此);

  • 这些同步原语的方法不接受 timeout 自变量;使用 asyncio.wait_for() 函数采用超时履行操作。

asyncio 拥有下列基本同步原语:


class asyncio.

为 asyncio 任务实现互斥锁。不是线程安全的。

An asyncio lock can be used to guarantee exclusive access to a shared resource.

The preferred way to use a Lock is an async with 语句:

lock = asyncio.Lock()
# ... later
async with lock:
    # access shared state