我有一个监听请求的类(服务器),一旦发出请求,就会启动一个新线程来处理它。处理程序线程将读取数据,将其存储到哈希图中并完成。我已将哈希图放在服务器类中,因为可以有多个处理程序线程在数据进入时读取数据。
我很困惑这是否是正确的方法,因为为了更改/访问哈希图,我必须编写 getter 和 setter 并将 Server 类传递给每个工作线程。一些示例代码来尝试描述我的查询:
public class Server implements Runnable {
private HashMap<String, Integer> data;
public void run() {
while(true) {
Socket s = serverSocket.accept();
Handler h = new Handler(s);
Thread t = new Thread(h);
t.start();
}
}
}
public class Handler implements Runnable {
public void run() {
//read in data from socket
data.put(d); //access the hashmap and insert data in
}
}
任何建议将不胜感激。谢谢。