object Users {
val userCountByAgeMap = readFromFile(); // read from file returns immutable map
}
上記の例のように、ユーザーはSingletonオブジェクトになり、userCountByAgeMapは遅延して初期化されます。スカラオブジェクトでは、不変のvalスレッドセーフですか?
この初期化原子はですか?即ち、1つのスレッドのみがそれを初期化することができる。
と仮定userCountByAgeMapは、スレッドAにより初期化され、それはB.
をスレッドに表示されます初期化が保証されない原子/メモリ可視でない場合は遅延valがそれを修正するように、変数をuserCountByAgeMap作るだろうか?