Как мы все знаем, свойство lazy не является поточно-ориентированным .
моя оценочная часть выглядит следующим образом.
if someclass isInitialized {
return someclass instance
}
else{
initialize someclass
return someclass instance
}
Проблема
Если поток 1 увидит, что someclass не инициализирован, он попытается это сделать.
Если поток 2 увидит, что someclass не инициализирован до того, как поток 1 сможет это сделать, то он тоже попытается его инициализировать..
так что инициализируется дважды
Можем ли мы преодолеть это с ленивым свойством?