私は昨日から並行性について読んでいて、多くのことを知りません...しかし、いくつかのことが明らかになり始めています...
ダブルチェックロックが安全ではない理由を理解しています(まれな状態が発生する可能性は何ですか)が、 volatile は 1.5 + で問題を修正します....
しかし、これはputifAbsent
お気に入り...
myObj = new myObject("CodeMonkey");
cHashM.putIfAbsent("keyy",myObj);
次に、これにより、myObj
別のスレッドがcHashM.get()
???を実行したときに 100% 初期化されることが保証されますか 参照が完全に初期化されていない可能性があるため(ダブルチェックロックの問題)