【发布时间】:2011-11-05 04:10:23
【问题描述】:
Guava 的Tables.newCustomTable(Map, Supplier) 方法在提供线程安全映射时会返回线程安全表吗?例如:
public static <R, C, V> Table<R, C, V> newConcurrentTable() {
return Tables.newCustomTable(
new ConcurrentHashMap<R, Map<C, V>>(),
new Supplier<Map<C, V>>() {
public Map<C, V> get() {
return new ConcurrentHashMap<C, V>();
}
});
}
该代码是否真的返回并发表?
【问题讨论】:
-
你对“并发表”的定义是什么?
-
好问题。用另一种方式表达我的问题:这些表会以 ConcurrentMap
> 不会的方式爆炸吗? “炸毁”是指进入无限循环、抛出异常或执行常规 HashBasedTable 如果您尝试同时在多个线程上读取和写入它会执行的任何其他操作。