dos.oracle.comでこれを見つけました
public static List synchronizedList(リスト リスト)
指定されたリストに基づく同期 (スレッドセーフ) リストを返します。シリアル アクセスを保証するには、バッキング リストへのすべてのアクセスが、返されたリストを介して行われることが重要です。ユーザーは、返されたリストを反復処理するときに手動で同期することが不可欠です。
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
私の質問は:Collections.synchronizedList();
既に同期されたリストを返すことになっている場合、リストを同期して反復する必要があるのはなぜですか?
2 つのスレッドでリストにアクセスするだけです。1 つのスレッドは追加するだけで、もう 1 つのスレッドは取得および削除します。このシナリオで使用することをお勧めする他のクラスは何ですか?
読んでくれてありがとう。