セマフォ - 注意事項

セマフォは、同じプロセス内のスレッド同期に使用できます。

セマフォは、カウントが関連付けられた同期オブジェクトであり、通常はいくつかの制限されたリソースの使用可能な数を表します。スレッドはそれらのリソースの 1 つを取得呼び出しを使用して取得します。いずれのリソースも使用可能でない場合、「待機」オプションの設定に応じて、呼び出しがブロックされるかエラーで戻ります。リソースが使用可能な場合 (カウントがゼロでない場合) は、カウントが減り、呼び出しからエラーなしで戻ります。

スレッドは解放呼び出しを使用してリソースを解放し、カウントを増やします。使用可能なリソースがないために他のスレッドがブロックされている場合 (カウントがゼロの場合)、そのうちの 1 つが解放されます。最初のスレッドを解放する処理でカウントがゼロに戻るため、他のスレッドはブロックされたままになります。