Здравствуйте, SergASh, Вы писали: SAS>А вопрос в том, можно ли переписать фабрику без блокировок?
В принципе, можно и без блокировок — проверяем, создаем новый объект, засовываем его в очередь и уже в отдельном потоке пытаемся вставить его в кеш. Вопрос нужно ли? Если ключи приходят с пачками с одним canonic, то проще в первый раз дождаться инициализации объекта, чем проинициализировать чертегознаетсколько объектов пока первый попадет в кеш.
Всё, что нас не убивает, ещё горько об этом пожалеет.