Этот вопрос относится к одному, который я только что спросил 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()
где его необходимости (в других классах)?
Что делать, если на карте нет? – SLaks
Кроме того, не используйте методы 'synchronized'; они не обеспечивают соответствующих уровней детализации. – SLaks
Если экземпляр на карте (если он найден там, конечно, как указано в SLaks!), А экземпляр, заданный в качестве аргумента, один и тот же, эти два эквивалентны. – ppeterka