Class A {
private Map<Oject,Object> map;
public void clear() {
map.clear();
}
public void work() {
synchronized (map) {
map.put(new Object, new Object();
}
}
}
如果线程 A 在方法的中间,work()
这是否意味着线程 B 在执行该方法时不会阻塞clear()
?
上面的代码和有这个有什么区别?
public void clear() {
synchronized (map) {
map.clear();
}
}