Проблема: у нас есть критический код пути, который никогда не должен блокироваться.Во многих местах он использует данные конфигурации или аналогичные, редко обновляемые данные из внешнего источника.
Когда нам необходимо перезагрузить данные конфигурации или обновить данные из внешнего источника, мы не хотим блокировать доступк этим данным и потенциально заблокировать потоки критических путей.
Решение: переместить данные в свой собственный класс.Используйте фоновый поток, чтобы полностью выполнить перезагрузку и проверить данные.Затем, когда он будет готов, замените старую ссылку на данные новой.
Эта ссылка должна быть изменчивой, чтобы обеспечить видимость для всех потоков.
Пока не обязательно, чтобы критический путькод всегда имеет самые последние доступные данные, это прекрасно работает, с абсолютным минимальным влиянием на производительность (все данные проходят через изменчивую ссылку).
Реальный вопрос в том, есть имя для этого шаблона проектирования параллелизма ?
Речь идет о языке Java, но я думаю, что это относится к большинству, поддерживающему совместный стиль программирования с общей памятью.