看effective java 发现一个小问题
作者说在运行下面程序会永远运行下去。我试了下只运行了一秒。 后来明白可能是作者是单核 我的是多核的原因,所以在新版本里,修改成了“ 不能保证线程看到值的改变”
不知道这么说对不对。请大家看看
import java.io.ObjectStreamException;
import java.lang.reflect.AccessibleObject;
import java.util.concurrent.TimeUnit;
public class Test {
private static boolean isok=false;
public static void main(String[] args){
Thread t=new Thread(new Runnable(){
public void run() {
while (isok){
System.out.println(" i am com");
}
}});
t.start();
try {
TimeUnit.SECONDS.sleep(1);
isok=true;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
探讨EffectiveJava中关于线程可见性的例子,在单核与多核环境下运行表现不同。作者通过修改示例代码来更好地解释线程间状态可见性的挑战。
1233

被折叠的 条评论
为什么被折叠?



