私はセマフォを使用するのが初めてです。だから、私は7つの許可を与えて、49人(スレッド)がそれらを待っていると言うことができます。私が最初の7人のセマフォを獲得して(例えば)、それらを別のクラスに渡すことによってリスト配列(人のセマフォを格納する)に格納するとします。次に、その配列に戻り、他のクラスのセマフォをループスルーしてrelease()した場合、その次のキーを待っている他のスレッドがトリガーされるべきではありませんか?私がコーディングしたものはこれを行い、次の7つのスレッドはキーを取得しないためです。コードを投稿していないのは、私が逃しているものを概念的に理解し、それを実装したいからです。Javaでセマフォを使用し、配列に格納する
0
A
答えて
2
何をしたいが、一度にアクティブになるように、最大7つのスレッドを持っているのであれば、 あなただけのように、1つのセマフォを必要とする:
Semaphore available = new Semaphore(7, true);
とあなたのスレッドのそれぞれが(available.acquire を呼びましょう)(そして最終的にはavailable.release())、これは非常にセマフォーなインスタンス(すべてのスレッドによって共有されています)に対するものです。
はここjava.util.concurrent.Semaphoreのjavadocはこう言われる、
カウンティングセマフォ。概念的には、セマフォーは の許可を維持します。それぞれのacquire()は、許可が になるまでブロックし、それを受け取ります。各リリース()は、許可を追加します。 は、潜在的にブロック取得者を解放します。 しかし、実際の許可オブジェクトは使用されません。 セマフォは数字 のカウントを保持し、それに応じて動作します。
関連する問題
- 1. DialogPageを使用してオプションで配列を格納する
- 2. Powershellを使用してSQLにバイト配列を格納する
- 3. getline inループを使用して配列に格納する
- 4. AngularJSでvmを使用してデータを配列に格納
- 5. 配列をデータテーブルに格納
- 6. sharedpreferencesに配列を格納
- 7. 選択したチェックボックスを配列に格納してfaceboxで使用する
- 8. Java - 配列に大量の値を格納する方法
- 9. ファイルをJavaの配列に格納する方法
- 10. 任意のプリミティブ型をa Java配列に格納する
- 11. 配列と合計にJTextFieldテキストを格納する - Java
- 12. chrome.storage.localで配列を格納する
- 13. バイト配列にintを格納する
- 14. jsonを配列に格納する
- 15. オブジェクトを配列に格納する(Haxe)
- 16. derbyデータベースに配列を格納する
- 17. データベースに配列を格納する
- 18. Solrに配列を格納する
- 19. 角度js配列を格納するチェックボックスモデルを使用
- 20. 配列リストに格納されているデータを、Excelでjavaを使用して挿入する
- 21. C#を使用してpostgresqlに2D配列を格納するには?
- 22. firebaseに格納するオブジェクト対配列
- 23. ViewBagを使用して文字列の配列を格納する方法
- 24. ABRecordRefの配列を格納
- 25. 配列内で使用する変数に出力を格納する
- 26. javaスクリプトを使用してcouchdbにインラインアタッチメントを格納する
- 27. PHPを使用してmysqlに多次元配列を格納する方法
- 28. NSUserDefaultsを使用してカスタムクラスの配列をSwiftに格納する方法は?
- 29. jqueryを使用してforループ内に配列を格納する方法
- 30. mipsを使用して配列にASCII値を格納する方法は?
[mcve]を作成する際には、通常、最善の方法を投稿することをおすすめします(リンクを参照してください)。 –