私は、セマフォがゼロ以外の値を持つ可能性があるかどうかに関して、非常に矛盾するソースをオンラインで読みました。いくつかの実装では、これは待機中のスレッドの数を示しているようですが、これを得ることはできません。私が正しく理解していれば、カウント値には何個の開いている「スロット」があるのかが示されます。まず第一に、カウントが正になるまでセマフォが待機コールをブロックした場合、どのように負のスロットを持つことができないのか分かりません。私はまた、待っているスレッドの数が開いているスロットの数とは何か関係があるとは思わない。このような状況では、カウンタ変数の負の値はどのように機能しますか?セマフォーはどのようにネガを働かせるのですか?
たとえば、負の値を持つセマフォをどのように説明しているかは、videoを参照してください。
セマフォカウントがゼロになる例と、これがどのように処理されるかを説明できますか? –
@TimBiegeleisen私の編集をご覧ください。 – rb612
あなたの実際の質問に例を挙げる方が良いかもしれません。リンクは時間をかけて移動したり、壊れたりすることがあります。 –