【发布时间】:2012-09-27 19:20:08
【问题描述】:
如果有一个同步方法,并且在该方法中,我会像这样更新一个哈希图:
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 会怎样?是一样的吗?
【问题讨论】:
标签: java synchronization