有人可以举例说明为什么在多线程应用程序中仅使用同步映射(meaing hashtable或ConcurrentMap)是不明智的? 我理解为什么同步在地图上执行操作的应用程序方法是有意义的,但为什么地图本身需要同步?
我试过了:
public class MapTest {
private static final TreeMap<String, String> map = new TreeMap<>();
public static void main(String[] args) {
Thread t = new Thread() {
public synchronized void run() {
map.put("pp", "ww");
}
};
Thread r = new Thread() {
public synchronized void run() {
System.out.println("s:" + map.get("pp"));
}
};
t.start();
r.start();
}
}
但我总是得到相同的“好”结果:s:ww allthoght地图未同步