用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。