工作中遇到了这么一个问题,想请教下大家。伪码如下:
[code="java"]
public class AAAAA{
public boolean enable = true; // [b]非violate[/b]
// 线程A执行
public void methodA{
while(enable){
.........
}
system.out.println("----------------------");
}
// 线程B执行
public void methodB{
enable = false;
}
}
[/code]
前提:线程A和线程B一定都会执行code。
问题:线程A是否有可能会永远退不出循环?如果存在这种可能,请详细说明下原因,谢谢。
本人认为不会存在这种情况,但是有同事说存在这种可能,原因是JVM指令重排序优化。我查了些资料,没有找到充足的证据来证明此事,所以想在这里请教下各位大侠,先行谢过了。 :)