【初心者】Java質問・相談スレッド72【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0232デフォルトの名無しさん
2005/09/29(木) 04:39:17他のスレッドはそのクラスにアクセスできない
(2)ロックが解放されるとき、そのスレッドのキャッシュはメインメモリに書き込まれる
(3)スレッドがはじめての「変数」(記憶領域)にアクセスするときは、メインメモリから読まれる
以上の3点から、初期化したスレッドと異なるスレッドが
(もうそれ以上変わらない)フィールドにアクセスした場合、
正しくアクセスできると思われる。
ダブルチェックの話は、
オブジェクトの保持するデータがまだメインメモリに書き込まれていないのに、
オブジェクトへの参照がメインメモリに書き込まれたときに
(データの書き込みの前後逆転は、最適化の余地のために残されている)、
他のスレッドから、その参照からオブジェクトの保有データにアクセスすると
未初期化状態のものにアクセスできてしまうことを言うのだと思う。
■ このスレッドは過去ログ倉庫に格納されています