我有一个具有三个线程和一个存储数据的哈希图的类。其中一个线程将数据写入 hashmap,另外两个线程读取它。像这样的东西:
public static class collector{
Thread writter;
Thread reader1;
Thread reader2;
HashMap storage;
...
public void write(String s){
storage.put(s.hashcode(),s);
}
public String read(long hash){
return storage.get(hash);
}
public Set readAll(){
return storage.entrySet();
}
}
我希望第一个线程(编写器)运行第一个方法(写入),reader1 运行 read,reader 2 运行 readAll。但是我无论如何都找不到访问线程中的存储(运行方法)。如何编写线程以像这 3 种方法一样运行,同时它们都可以同时访问存储?