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

Привет А что будет если вызвать у ConcurrentHashMap метод computeIfAbsent с

теми же аргументами сразу после такого же вызова, но до того как он (предыдущий) довычислит выражение и положит пару ключ-значение?

7 ответов

4 просмотра

Из доки выходит, что вызовется один раз The supplied function is invoked exactly once per invocation of this method if the key is absent, else not at all. Some attempted update operations on this map by other threads may be blocked while computation is in progress, so the computation should be short and simple.

RAFIZ- Автор вопроса
Alexey Genus 😎
Из доки выходит, что вызовется один раз The suppli...

о спасибо! как-то я сам не нашел а ссыль можно?

RAFIZ
о спасибо! как-то я сам не нашел а ссыль можно?

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html#computeIfAbsent(K,java.util.function.Function) Или можно просто в IDEA посмотреть

RAFIZ- Автор вопроса
Alexey Genus 😎
https://docs.oracle.com/en/java/javase/17/docs/api...

я в коде провалился и у меня не было описания:) спасибо!

RAFIZ
я в коде провалился и у меня не было описания:) сп...

Надо жмакнуть "download sources" или "download javadoc"

Alexey Genus 😎
Из доки выходит, что вызовется один раз The suppli...

Не вызовется один раз, а первая операция будет блокировать вторую на время своего выполнения, и после окончания первой вызовется вторая, которая собственно уже ничего не будет делать, т.к. значение уже в мапе. Я так понимаю, иначе не обеспечить согласованность.

akalexus
Не вызовется один раз, а первая операция будет бло...

Может быть, я неточно выразился, но я именно это и имел в виду: лямбда второго аргумента не вызовется второй раз, потому что значение уже будет доступно

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

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

зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Можно попросить небольшое ревью кода? Тут немнога, я ничего интереснее не придумал, чем написать аналог tree в качестве практики с cmake. https://github.com/hrimov/tree-unix/...
Andrew Hrimov
11
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Но если Евгений и Алекс используют в боевых условиях, то почему нет? А ты как-то про бизнес больше задвигаешь, это имеет к разработке отношение, но все же этим больше другие л...
Keiman
5
все привет. подскажите может кто сталкивался evo 3 если в formlister в параметр formTpl указать имя чанка а не через @CODE то в указанном чанке не парсятся плейсхолдеры [**]? ...
Иван Тарасевич
7
Карта сайта