我运行一个 java 服务器来支持我正在开发的 android 游戏。服务器接收客户端套接字,打开一个新线程,读取客户端发送的对象并对链表执行操作。
操作包括,如果链表为空,则将新对象添加到链表中。如果列表不为空,则线程将对象添加到列表中并返回列表中的不同对象。
if (!check.getName().equals(fighter1.getName())) {
fighter2 = check;
itr.remove();
OutputStream os = clientSocket.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(fighter2);
oos.flush();
checkName = false;
}
这是线程的删除部分,添加部分在前面一点,基本上只是 list.add(object);
现在,问题是由于该服务器可以运行多个线程,如果 10 个用户同时连接会发生什么情况,这不会有很大的机会导致列表出现空指针/其他错误。
我想扩展这台服务器,使其能够同时处理数百个连接,而我目前只是用少数 alpha 测试人员对其进行测试。关于如何使数据更改尽可能安全有什么好主意吗?