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

Ага, на первый взгляд херь какая-то, какой смысл лочиться вокруг

нового объекта, если его все равно не будет видно другим потокам, пока данный не выскочит из блока?

1 ответов

3 просмотра

На самом деле интересная конструкция. Судя по сорсам: Создает корзину-затычку, сразу же попадает в блок synchronized потому что некому конкурировать и добавляет эту корзину в свое хранилище. Теперь любой кто захочет изменить корзину по индексу i будет вынужден ждать пока этот код не отпустит эту корзину(то есть по сути ждать завершения маппера + сет корзины в хранилище). Далее выполняется вычисление этого маппера и результат запишется в новую корзину которая сохранится заменив ReservationNode. Учитывая что остальные апдейты выглядят как: java while(true) { ... f = tabAt(tab, i); synchronized (f) { if (tabAt(tab, i) == f) { } получается что если во время вычисления кто-то пытался что-то записать в корзину под номером i - то ему придется дождаться чтобы узнать что значение поменялось и в следущей итерации цикла обработать уже вставленное посчитанное значение. В доках описаны следущие гарантии: java * The entire method invocation is performed atomically, so the function is applied at most once per key Получается такой способ залочить корзину под номером i во время работы гарантированно единственного вызова маппера

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
6
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
8
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Карта сайта