と共有リソースとアクションIは、以下のタスクがありますスレッド同期:異なるリソース番号需要
を等価リソース(例えば入力スロット)をプールし、このプールを用いて実行されるアクションのセットがあります。
各アクションは別のスレッドで実行されます。
各アクションでは、使用可能な入力スロットの数が異なります。すべてのアクションのスレッドが同時に
実行されている入力スロットの必要数は
スロットを自由に使用することがときにアクションが実行され
:
は、私は、次のタスクのセマフォのようなものを使用したいですアクションは、それがセマフォ負の初期値を設定するか、それが負になるまで値をデクリメントすることは不可能ですので、私は定期的にセマフォを使用することはできません
を終了したときに自由に設定されている
だから、私はそれを解決することができますどのように任意の提案
を「リソース値がNに達するまで待つ」のようになめらかにし、機能WaitMultiple(int型N)と「セマフォ」を、必要ですか? 私は、スレッドブロック/リリースを好む、私はセマフォがここに有用であることがわからないアクティブループ
私はC#セマフォーで作業しませんでした。私は答えられません。しかし、ディスパッチのための別のスレッドでループを使用するとコストが高すぎるという結論にどのように到達したかに興味がありますか? – Fdr
アクティブループでは、私は(for;)if(free_slots> N)breakのようなsmthを意味しました。あなたはどういう意味ですか? – HtonS
+1:これは素晴らしい質問です。 –