object Users {
val userCountByAgeMap = readFromFile(); // read from file returns immutable map
}
在上面的Scala示例中,用户将是单例对象,并且userCountByAgeMap将被懒加载初始化。
那么这个初始化是原子的吗?即只有一个线程可以初始化它。假设userCountByAgeMap由Thread A初始化,是否会对Thread B可见?
如果初始化不是原子的/内存可见性不能保证,将userCountByAgeMap变量设置为lazy val是否能解决问题?