Это будет поточно-ориентированным, но только благодаря тому, что Collections.unmodifiableSet()
внутренне публикует цель Set
безопасным способом (через поле final
).
Обратите внимание, что в общем случае такие выражения, как «объекты только для чтения, всегда потокобезопасны», являются неверными, поскольку они не учитывают возможность переупорядочения операций.
(теоретически) возможно, что из-за переупорядочения операций ссылка на этот объект, доступный только для чтения, станет видимой для других потоков, прежде чем объект будет полностью инициализирован и заполнен данными. Чтобы исключить эту возможность, вам нужно опубликовать ссылки на объект безопасным способом, например, сохраняя их в полях final
, как это делает Collections.unmodifiableSet()
.