当前位置: 代码迷 >> J2SE >> 关于effective java2 第66条的程序解决办法
  详细解决方案

关于effective java2 第66条的程序解决办法

热度:5280   发布时间:2013-02-25 00:00:00.0
关于effective java2 第66条的程序

这个是书上的程序,会无限循环下去。
Java code
public class Test {    private static boolean b;    private static int i = 1;    public static void main(String[] args) throws InterruptedException {        Thread thread = new Thread(new Runnable() {            @Override            public void run() {                while (!b) {                    System.out.println(i);                }            }        });        thread.start();        TimeUnit.SECONDS.sleep(1);        b = true;        i = 2;        System.out.println(b);    }}

这是我写的例子。会中止线程。


------解决方案--------------------------------------------------------
谢谢楼主分享。 要是能稍加解释就更好啦。
------解决方案--------------------------------------------------------
要用server模式启动,此外去掉 System.out.println(),也就是尽量消除线程需要切换环境的可能性。

应该就可以看到无限循环的效果了。
------解决方案--------------------------------------------------------
探讨
server模式启动是啥意思哦。

------解决方案--------------------------------------------------------
探讨
恩,看到效果了。谢谢啊。
  相关解决方案