我不确定我是否理解 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()如果我改为使用public synchronized void add()and会发生什么public synchronized void doSomething()?
我正在开发一个 UDP 套接字服务器,我打算将客户端存储在一个ArrayList. 我将有多个线程可以读取、写入和修改此列表。我应该做什么?