セマフォ - 注意事項

セマフォは同プロセス内においてスレッドの同期に使用される。

セマフォは付随するカウントを持つ同期オブジェクトである、通常いくつかの制限ソースで使用される番号を表している。スレッドはこれらのリソースの1つを、取得呼出しを使用して取得する。使用できるリソースがない場合は、呼出しをブロックするか、「待機」オプションによってはエラーを返す。リソースが使用可能な場合(カウントが0以外の場合)、カウントは減少していき、エラーなしで呼出しは返る。

スレッドは解放呼出しによって、リソースを解放する。この結果、カウントが増えていく。使用できるリソースがなく他のスレッドがブロックされた場合、スレッドの1つは解放される。最初のスレッドが解放されているため、他のスレッドはブロックされたままであり、カウントは0まで減少していく。

関連項目