【发布时间】:2013-08-28 17:04:03
【问题描述】:
这个问题与我刚刚问过的一个问题here有关。
鉴于servers 是private static ConcurrentHashMap,以下两种方法和第三种方法是否都等效,因为servers 映射将反映所有三个所做的更改?
1.
public static synchronized int releaseConnection(Server s) {
return servers.get(s.getId()).decrementConns();
}
2.
public static synchronized int releaseConnection(Server s) {
return s.decrementConns();
}
3.只需在需要的地方(在其他类中)调用decrementConns()?
【问题讨论】:
-
如果它不在地图上怎么办?
-
另外,不要使用
synchronized方法;它们没有提供适当的粒度级别。 -
如果地图中的实例(当然,正如 SLaks 指出的那样,在地图中找到它!)和作为参数给出的实例相同,则两者是等价的。
标签: java static concurrenthashmap