3

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. このリストを読み取り、書き込み、および変更できる複数のスレッドが必要です。私は何をすべきですか?

4

2 に答える 2