0

这是一个 main 函数的内容,当打印行被注释时它会阻塞,但是当打印行被取消注释时它会按预期执行。

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

对 print 调用的这种奇怪效果有什么合理的解释吗?

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("");
}
4

1 回答 1

2

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

于 2014-01-09T19:58:24.497 回答