1

これは私の宿題の質問の 1 つです。

マルチスレッドプログラムでlinkedlistを使用する際の問題は何ですか?代替手段は何ですか?

私は次のように答えました。その他のアドバイスをいただければ幸いです。

問題は同時実行性の欠如です - リンクされたリストを使用するには、保持する内部オブジェクトに加えられた変更が信頼できるように、ロックを使用する必要があります (すべてのオブジェクトが次のオブジェクトへの参照を保持するため)。リンクされたリストをロックします。基本的に、複数のスレッドで使用するオプションを「シャットダウン」します。代替手段は、すべてのアイテムを個別にロックできるため、配列です。

私の答えがまったくわからないのですが、アドバイスはありますか?...

4

2 に答える 2

0

Java SE には LinkedList のスレッドセーフ バージョンはありませんが、Collections.synchronizedList(List) を使用して LinkedList の同期プロキシを作成できます。ロックフリーでスレッドセーフな java.util.concurrent.CopyOnWriteArrayList もありますが、その名前からわかるように配列ベースです。

于 2013-04-05T11:55:29.400 に答える
0

あなたの答えは良さそうです。

反復が突然変異をはるかに超える場合、代替案は( aで十分であるとCopyOnWriteArrayList仮定して )可能性があります。List

于 2013-04-05T11:48:53.673 に答える