170 похожих чатов

Господа, подскажите плиз, как работает такая синхронизация ? из метода compute()

в ConcurrentHashMap
if ((f = tabAt(tab, i = (n - 1) & h)) == null) {
Node<K,V> r = new ReservationNode<K,V>();
synchronized (r) {
if (casTabAt(tab, i, null, r)) {
binCount = 1;
Node<K,V> node = null;
try {
if ((val = remappingFunction.apply(key, null)) != null) {
delta = 1;
node = new Node<K,V>(h, key, val);
}
} finally {
setTabAt(tab, i, node);
}
}
}
if (binCount != 0)
break;
}
в каждом потоке новый объект-монитор Node<K,V> r = new ReservationNode<K,V>();, то есть синхры по факту нет ?

4 ответов

6 просмотров

Тебя реалньо не смущает простыня которую ты выложил?

Serj-in Автор вопроса
Islam Yusubov
Тебя реалньо не смущает простыня которую ты выложи...

из метода compute() в ConcurrentHashMap большую часть можно не копипастить Node<K,V> r = new ReservationNode<K,V>(); synchronized (r) { .... } Как оно работает, блин

Serj-in Автор вопроса

Похожие вопросы

Обсуждают сегодня

ого, прикольно, а что пишешь?
CodWiz | Серёжа by CodWiz
32
а почему бы не поведать миру эти дополнения, сделав их по сути стандартными для ide ?
Mixail Frolov
26
А как ребята типа теле2 зашли? У них же пополнение баланса моментальное
Alexandr Dubickiy
22
Нужно найти номер позиции, с которой начинается подстрока S2 в строке S1. lea di, s1 ;Строка lea si, s2 Подстрока again: mov al, [si] mov ah, 02 ...
Ыиу
11
Здравствуйте. Какое условие необходимо, что бы приложение скомпилированное лазарусом в ubuntu запускалось на astra linux?
Эдуард Щербаков
21
.model small .stack 100h .data x db ? y db ? equation db 10, 5, -20 result db ? .code main proc mov ax, @data mov ds, ax ; Ввод координат x и y ...
Mr Beast
1
Привет Вам, Гуру вапора Смею обратиться с вопросом, по какой причине не сохраняются куки через request.client.send(get) и urlsession? Опишу чуть точнее: - есть первый запрос, ...
Alexander Orlov
10
Привет всем) Вопрос касательно подписи собранного .exe файла сертификатом Я заказал у GlobalSign EV сертификат, выбрал установку на облачный HSM, чтобы автоматизировать проце...
Виталий
4
О ветке GLScene for Lazarus. Импортировал её без всяких токенов с Github на Gitverse в https://gitverse.ru/glscene/LZScene, которую я как админ выделил из основного трека раз...
Павел Васильев
1
Does anyone know why flutter sdk is not available when intl is initialized? flutter doctor is clean
Islam Kurbanov
7
Карта сайта