为什么打印解锁执行?

时间:2014-01-09 19:40:39

标签: java swing jdesktop

这是主要功能的内容,当打印行被注释时,它会阻止,但是当取消注释打印行时,它会按预期执行。

为什么单个打印行会改变整个while循环的行为? (在完全不执行和成功完成之间。)这是可重复的,我可以多次评论和取消注释该行,并得到相同的结果:它仅在取消注释打印时才有效。

打印电话的这种奇怪效果的任何合理解释?

MainGUI.main(args);
DeviceManager device = DeviceManager.getInstance();
MainGUI gui = null;
while(true){
    if(device.getGui() != null){
        gui = laser.getGui();
        if(gui.isLoaded()){
            gui.getMainView().getFrame().setLocation(0, 0);
            break;
        }
    }
    // System.out.print("");
}

1 个答案:

答案 0 :(得分:2)

println可能会减慢紧密循环的执行速度,从而使处理器能够处理代码完成所需的其他线程。我敢打赌Thread.sleep(5);会做类似的事情。