2

私が理解しているように、揮発性変数へのアクセスは他の変数へのアクセスで並べ替えられないという新しいJavaメモリモデルの義務を理解しているため、次のコードは正しいです:

Map configOptions;
char[] configText;
volatile boolean initialized = false;

// In Thread A
configOptions = new HashMap();
configText = readConfigFile(fileName);
processConfigOptions(configText, configOptions);
initialized = true;

// In Thread B
while (!initialized) 
  sleep();
// use configOptions 

initialized構成オプションに設定されている場合true、すでに初期化されていますが、表示されていますか? つまり、すでにメインメモリにあるということですか?

4

2 に答える 2