用法:
class asyncio.Semaphore(value=1)
一個信號量對象。不是線程安全的。
信號量管理一個內部計數器,該計數器由每個
acquire()
調用遞減,並由每個release()
調用遞增。計數器永遠不會低於零;當acquire()
發現它為零時,它會阻塞,等待某些任務調用release()
。可選的
value
參數給出內部計數器的初始值(默認為1
)。如果給定值小於0
,則會引發ValueError
。在 3.10 版中更改:刪除了
loop
範圍。使用信號量的首選方法是
async with
語句:sem = asyncio.Semaphore(10) # ... later async with sem: # work with shared resource
這相當於:
sem = asyncio.Semaphore(10) # ... later await sem.acquire() try: # work with shared resource finally: sem.release()
相關用法
- Python asyncio.Server用法及代碼示例
- Python asyncio.Server.serve_forever用法及代碼示例
- Python asyncio.SelectorEventLoop用法及代碼示例
- Python asyncio.BaseTransport.get_extra_info用法及代碼示例
- Python asyncio.shield用法及代碼示例
- Python asyncio.run用法及代碼示例
- Python asyncio.wait_for用法及代碼示例
- Python asyncio.create_task用法及代碼示例
- Python asyncio.Task.cancel用法及代碼示例
- Python asyncio.loop.run_in_executor用法及代碼示例
- Python asyncio.Event用法及代碼示例
- Python asyncio.gather用法及代碼示例
- Python asyncio.sleep用法及代碼示例
- Python asyncio.to_thread用法及代碼示例
- Python asyncio.Condition用法及代碼示例
- Python asyncio.run_coroutine_threadsafe用法及代碼示例
- Python asyncio.Lock用法及代碼示例
- Python asyncio.Future.add_done_callback用法及代碼示例
- Python asyncio.loop.shutdown_asyncgens用法及代碼示例
- Python asyncio.as_completed用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 asyncio.Semaphore。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。