众所周知,惰性属性不是线程安全的。
我的评估部分就是这样。
if someclass isInitialized {
return someclass instance
}
else{
initialize someclass
return someclass instance
}
问题是
如果线程1看到某类未初始化,它将尝试这样做。
如果线程2在线程1开始之前发现某类未初始化,那么它也将尝试对其进行初始化。
因此它被初始化两次
我们可以通过懒惰属性克服这个问题吗?