Nil*_*esh 12 java collections concurrency
我正在尝试为多线程体系结构创建并发LinkedHashMap.
如果我使用Collections#synchronizedMap(),我将不得不使用synchronized块进行迭代.此实现将导致元素的顺序添加.
如果我使用ConcurrentSkipListMap是有任何方法来实现Comparator顺序存储,如存储在链接列表或队列中.
我想使用java内置而不是第三方软件包.
编辑:
在此并发中LinkedHashMap,如果键是名称,我希望按顺序放置键.即新值将在开始或结束时附加到,但是顺序地附加.
迭代时,LinkedHashMap可以添加新条目,也可以删除.但迭代应该是添加条目的顺序.
我知道通过使用Collections#synchronizedMap(),必须实现用于迭代的同步块,但是在迭代时,地图是可修改的(可以添加/删除条目).
使用Collections#synchronizedMap()。
根据我的信念,如果我使用 Collections.synchronizedMap(),我将必须使用同步块进行 getter/setter。
这不是真的。您只需要同步任何视图(键集、值、条目集)上的迭代。另请参阅上面链接的 API 文档。