我是 Java 线程的新手,最近才开始阅读内存模型。根据我的理解,Java 内存模型允许编译器进行优化。
这可能会使多线程代码和同步变得复杂,但我的问题是要简单得多。举这个例子,因为这两个语句不相互依赖,编译器是否有可能改变 try 语句中代码的顺序,从而中断检查?
boolean success = false;
try{
MyClass.someFunction();
success = true;
}
catch(Exception e){
}
if(success){
System.out.println("Sucess!");
}
else{
System.out.println("Fail!");
}