У меня есть поток, который работает на периодической основе. Нить очищает и обновляет хэш-карту данных из базы данных.Использовать переменную только после обработки периодического потока
Скажем, что поток работает каждые 24 часа в полночь. В полночь кеш очищается, а затем обновляется данными из базы данных. Во время процесса обновления, как я могу получить доступ к этому кешу только после того, как поток завершил обработку? Конечно, я могу гарантировать, что кеш не пуст. Однако есть ли другой способ сделать это?
Я знаю, что этот вопрос неясен. Я ищу ресурсы, которые можно указать на мои собственные исследования и исследования.
После обновления вы хотите, чтобы кеш был доступен до следующей полуночи или на короткое время?Если первое, почему бы просто не установить его в какое-либо общедоступное место (например, поле с геттером)? Любой может читать с этого места, и до тех пор, пока переменная не является нулевой, это то, что они должны использовать. Конечно, есть проблемы с резьбой, но это само по себе. – yshavit
В этом примере, который я представил, это будет до следующей полуночи. Основываясь на вашем примере, я бы не должен был хранить в переменной, а затем переписать переменную в какой-то момент? По сути, я хочу, чтобы избежать взаимодействия с этой переменной до тех пор, пока не произойдет обновление. – Albert
Если взаимодействия - это просто «сохранить ссылку, а затем использовать эту локальную ссылку для всего, что вам нужно», тогда почему вас это волнует, если кто-то использует его? Иными словами: как все иначе, если кто-то правильно забирает предыдущую версию в 11:58 вечера, а «неправильно» подбирает ту же самую версию в 12:01, а новый кеш рассчитывается? – yshavit