Java の同期リストを理解しているかどうかわかりません。次のものがあるとします。
List<Integer> numbers = Collections.synchronizedList(new ArrayList<Integer>());
// Assumption: This is running on a separate thread
public void add() {
numbers.add(new Random().nextInt(100));
}
// This is also running on a separate thread
public void doSomething() {
synchronized(numbers) {
for (int i : numbers) {}
}
}
基本的に、が呼び出されadd()
た場合、リストに番号を追加できますか? doSomething()
代わりに and を使用するpublic synchronized void add()
とどうなりpublic synchronized void doSomething()
ますか?
私はUDPソケットサーバーに取り組んでおり、クライアントをArrayList
. このリストを読み取り、書き込み、および変更できる複数のスレッドが必要です。私は何をすべきですか?