我正在使用以下内容HashMap
:
HashMap<String,String> hm = new HashMap<String,String>();
在不同线程中运行的三个不同Runnable
的 s 将从 中读取hm
,而第四个线程Runnable
将从映射中添加和删除键/值条目。根据Java 文档,只要多个线程可能同时与之交互,我就应该同步对这个映射的访问。但是,出于性能原因,我不希望三个读取器线程相互阻塞,因为它们只是从地图中读取。我只希望在第四个线程添加/删除映射条目时发生阻塞。据我了解,调用Collections.synchronizedMap(...)
将同步对地图的任何类型的访问。我怎样才能做到这一点?