0

マルチスレッド環境では、静的な ArrayList を持つシングルトンがあります。

1 つのスレッドがインスタンスを取得し、ArrayList に対して「for」ループを実行しているとします。ただ読んでいます。更新はありません。これが完了するまでに時間がかかる場合があります。これが発生している間、別のスレッドが ArrayList を更新します。

ループ (最初のスレッド) はどうなりますか? 理想的には、「for」ループが「古い」データで完了し、インスタンスを再度取得した場合は、新しいデータ セットを取得したいと考えています。

この場合の秘訣は volatile を使用しないことですか? または、「for」ループの静的 ArrayList から新しい ArrayList を作成しますか? または... ?

4

2 に答える 2

-3

マルチスレッド環境では、ArrayList の代わりに vector を使用することをお勧めします。vector と ArrayList の間の議論: http://www.javaworld.com/javaqa/2001-06/03-qa-0622-vector.html

于 2013-05-10T16:05:37.283 に答える