Кофеин не блокирует LoadingCache.get для дорогостоящей операцииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Кофеин не блокирует LoadingCache.get для дорогостоящей операции

Сообщение Anonymous »

Я использую Caffeine LoadingCache для кэширования дорогостоящих операций ввода-вывода, которые могут занять много времени:

Код: Выделить всё

var cache = Caffeine
.refreshAfterWrite(1, MINUTES)
.build(loader);
и попытайтесь получить значения с помощью кэша.get(k).
Когда кэшированная запись существует, но уже отмечена для обновить (более 1 минуты), а затем я вызываю get, он блокируется и пытается загрузить из загрузчика, или он немедленно возвращает кешированное значение и загружает его в фоновом потоке?
Я пытался поискать в документации и не нашел четкого объяснения этому. Функция Refresh упоминается только при вызове обновления, но не при вызове get. По моим рассуждениям, поскольку replaceAfterWrite не удаляет записи с истекшим сроком действия, он должен использовать их и возвращать это кэшированное значение без блокировки, но я не нашел подтверждения.

Подробнее здесь: https://stackoverflow.com/questions/789 ... -operation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»