セマフォはよく有限なリソースを保護するために使われます。 例えばデータベースサーバーなどです。 リソースのサイズが固定されているすべての状況で、 有限セマフォを使用するべきです。 様々な労働者スレッドを産み出す前に、あなたのメインスレッドは セマフォを初期化するべきです:
maxconnections = 5 ... pool_sema = BoundedSemaphore(value=maxconnections)
いったん産み出せば、サーバーへ接続する必要が生じたときに、 労働者スレッドはセマフォのacquireとreleaseを呼出します:
pool_sema.acquire() conn = connectdb() ... use connection ... conn.close() pool_sema.release()
有限セマフォの使用は、獲得した以上に解放したことを検出できないという プログラミングエラーを減らします。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。