假设如果有一个同步方法,并且在该方法中,我会更新一个哈希图,如下所示:
public synchronized void method1()
{
myHashMap.clear();
//populate the hashmap, takes about 5 seconds.
}
现在当method1正在运行并且hashmap正在重新填充时,如果有其他线程试图获取hashmap的值,我假设它们会被阻塞?
现在而不是使用同步方法,如果我将 hashmap 更改为 ConcurrentHashMap 如下所示,行为是什么?
public void method1()
{
myConcurrentHashMap.clear();
//populate the hashmap, takes about 5 seconds.
}
如果我使用 Collections.synchronizedMap 怎么办?是一样的吗?