7.5.4.1 Semaphore の例

セマフォはよく有限なリソースを保護するために使われます。 例えばデータベースサーバーなどです。 リソースのサイズが固定されているすべての状況で、 有限セマフォを使用するべきです。 様々な労働者スレッドを産み出す前に、あなたのメインスレッドは セマフォを初期化するべきです:

maxconnections = 5
...
pool_sema = BoundedSemaphore(value=maxconnections)

いったん産み出せば、サーバーへ接続する必要が生じたときに、 労働者スレッドはセマフォのacquirereleaseを呼出します:

pool_sema.acquire()
conn = connectdb()
... use connection ...
conn.close()
pool_sema.release()

有限セマフォの使用は、獲得した以上に解放したことを検出できないという プログラミングエラーを減らします。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。