关于java中collection提供的同步容器方法

徐建海 发布于 2015/06/01 21:04
阅读 744
收藏 0

最近看kafka的设计,发现在abstractConfig中使用了 Collections.synchronizedSet(new HashSet<String>()) ,字面上能够理解,在原来hashset上面做了一层包装,在源代码中有Returns a synchronized (thread-safe) set backed by the specified set.的注释, 大部分实现在synchronizedCollection中,但是,有并法包的存在,那么,还用这种容器方法做什么呢?

加载中
0
逝水fox
逝水fox
这个方法出现在并发包之前
徐建海
徐建海
@徐建海 kafka的设计里面metrics的实现中有 private final ConcurrentMap<MetricName, KafkaMetric> metrics;的设计,那么,向下兼容的论断就不成立了
徐建海
徐建海
@逝水fox 低版本的JVM?这个回答不错,竞争激烈不同程度的情况下,使用不同的同步容器方法,不同情况下,两者的代价会有超越,是这个意思吗?
逝水fox
逝水fox
回复 @徐建海 : 要不是为了在低版本的JVM上运行,要不就是认为此处竞争并不激烈,没必要用分段锁
徐建海
徐建海
kafka的源代码里面现在再用,不知道他们是怎么想的
0
徐建海
徐建海
kafka的源代码里面再用,不知道他们是怎么想的
0
yeliuping
yeliuping
这是防止并发的情况,如:遍历的同时又在删除数据
返回顶部
顶部