私はArrayList<ConcurrentLinkedQueue>
を反復処理するワーカースレッドを持っています。他のスレッドはオブジェクト(キュー)を追加したり削除したりすることができます。しかし、ArrayListはスレッドセーフではありません。 ArrayList<ConcurrentLinkedQueue>
の代わりにConcurrentLinkedQueue<ConcurrentLinkedQueue>
を使用しても問題ありませんか?ListではなくJava ConcurrentLinkedQueue?
0
A
答えて
2
ConcurrentLinkedQueue
を安全に反復できるかどうかを確認する場合は、答えはYesです。 javadocは言う:
Iterators
は、イテレータの作成時または以来、いくつかの点でキューの状態を反映する要素を返し、弱い一貫しています。 彼らはConcurrentModificationException
を投げず、他の操作と並行して進めることができます。イテレータの作成以降にキューに含まれる要素は、一度だけ返されます。
はしかし、あなたはQueue
上で行うことはできませんList
上にできることがある(例えば、位置取得/設定、任意の要素の挿入/除去が。)アプリケーションがこれらの事を行う必要があるか類似している場合ArrayList
の代わりにConcurrentLinkedQueue
を使用すると動作しません。
また、ConcurrentLinkedQueue.size()
がO(N)
操作であることに注意してください。
関連する問題
- 1. モニタキュー - ConcurrentLinkedQueue?
- 2. Concurrent LinkedListとConcurrentLinkedQueue
- 3. LinkedListとConcurrentLinkedQueue
- 4. Androidでアクティビティ間でConcurrentLinkedQueueを共有
- 5. ConcurrentLinkedQueueは削除されません
- 6. java linked listコピーコンストラクタ
- 7. ApacheのスパークDATAFRAME:df.where()は、Javaで:List属性
- 8. Java Array List/whileループカウントエラー
- 9. Entity Frameworkが空のListではなくList <>を返すのはなぜですか?
- 10. LinkedBlockingQueueとConcurrentLinkedQueueの違いは何ですか?
- 11. List Listオブジェクトが空でない
- 12. Java - バイナリファイルI/O with array-list
- 13. Aerospike List JavaクライアントでのListOperationの使用
- 14. Java ListインターフェイスがgetLast()をサポートしないのはなぜですか?
- 15. Java ListイテレータがIdentityHashMapで動作しない
- 16. List <String> []はjavaの意味は何ですか?
- 17. ConcurrentLinkedQueueは期待通りに動作しません
- 18. list [-1:] [0]とlist [len(list)-1]の違いは何ですか?
- 19. Java汎用タイプ:List <?数を拡張>とList <Tは数>
- 20. なぜstd :: list :: sortはうまくいかないのですか?
- 21. ConcurrentLinkedQueueを非アトミック操作で使用する
- 22. Javaのジェネリックでは、List <?スーパーストリング>平均?
- 23. ListアダプタでgetViewが正しく表示されない
- 24. TypeError:int()引数は 'list'ではなく文字列または数字でなければなりませんDjango
- 25. List WebElementの子を選択 - Java - Selenium WebDriver
- 26. Java Linked Listのポインターの混同
- 27. Javaの一覧/ Array Listの明確化
- 28. Scalaに追加List [(Int)=> Unit] from Java
- 29. Vert.x java List <Futures>パラメータ化
- 30. Java辞書<String、List <Object>>
'List'はインターフェイスです。いくつかの実装はスレッドセーフ(例えば 'CopyOnWriteArrayList')、他は実装されていません(例えば' ArrayList')。 –
違いは何ですか?なぜ、ConcurrentLinkedQueueは機能しないのですか、それとも悪いのですか? – stonar96
私はそれがあなたが何をする必要があるかによって異なると思う。私はあなたの要件についてさらに詳しく述べたいと思います。 –