Кофеин не блокирует 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

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