Ne nevyvratil. Pridal si do toho deadlock. O kterym jsme se opet nebavili. Je to jen show-off od tebe.
Chcete tvrdit, že když máte mapu definovanou následujícím způsobem:
Map<String, AtomicLong> counter = new HashMap<>()
a chcete tu mapu i její prvky modifikovat z více vláken, musíte modifikaci prvků synchronizovat přes stejný monitor, jako přístup k mapě? Podle vás je následující kód špatně?
public long increment(String name) {
AtomicLong namedCounter;
try {
lock.readLock().lock();
namedCounter = counter.get(name);
} finally {
lock.readLock().unlock();
}
return namedCounter.incrementAndGet();
}
Jak by ten kód byl podle vás správně, aby se
increment() dalo volat bezpečně z více vláken?