2016-04-05 2 views
0

私は、セマフォがゼロ以外の値を持つ可能性があるかどうかに関して、非常に矛盾するソースをオンラインで読みました。いくつかの実装では、これは待機中のスレッドの数を示しているようですが、これを得ることはできません。私が正しく理解していれば、カウント値には何個の開いている「スロット」があるのか​​が示されます。まず第一に、カウントが正になるまでセマフォが待機コールをブロックした場合、どのように負のスロットを持つことができないのか分かりません。私はまた、待っているスレッドの数が開いているスロットの数とは何か関係があるとは思わない。このような状況では、カウンタ変数の負の値はどのように機能しますか?セマフォーはどのようにネガを働かせるのですか?

たとえば、負の値を持つセマフォをどのように説明しているかは、videoを参照してください。

+0

セマフォカウントがゼロになる例と、これがどのように処理されるかを説明できますか? –

+0

@TimBiegeleisen私の編集をご覧ください。 – rb612

+0

あなたの実際の質問に例を挙げる方が良いかもしれません。リンクは時間をかけて移動したり、壊れたりすることがあります。 –

答えて

0

ソースコードを引用するか、コードを貼り付けてください。

セマフォは、その値が0または1

  1. countあなたが参照しているされてのいずれかを意味し、一般的にバイナリで?

一般に、countは待機スレッドの数になります。あなたが参照しているスロットは分かりません。

  1. 待機中のスレッドは、通常、キューに入り、スリープ状態になります。
+0

ご返信ありがとうございます。ソースの私の編集を見てください。 – rb612

関連する問題