以下のスニペットコードがあります。私は2つのスレッドAとBが同時に動作している。 forループのこのフォームでループ内にConcurrentModificationExceptionがあるかどうか
List<String> listPeople = new ArrayList<>();
// Add more item
.....
Thread A
for (String item : listPeople) {
System.out.println("Name is: " + item.name);
}
Thread B
- add/remove item to list people
、それはリストのiterator
を経由してループします。だからConcurrentModificationException
でクラッシュするのですか? ConcurrentModificationException
Javadocから
@Daniel Prydenは彼の答えで説明したように、あなたはそれを信じることができません。時には、ConcurrentModificationExceptionがスローされ、そうでない場合もあります。 –
yrの回答ありがとうございます。安全のために、私はfor(;;)ステートメントを使うべきでしょうか? –