杀死无限循环会冻结终端

时间:2016-03-11 19:53:54

标签: java java-9 jshell

在SO上已经发布了similar question,但是,只有在循环不生成任何输出时,该解决方案才有效。 如果我尝试运行while(true) System.out.print(1);然后点击 Ctrl + C ,会发生什么是终端只是冻结而且似乎无法杀死它。 除了关闭和重新打开终端之外,还能做些什么吗?

1 个答案:

答案 0 :(得分:-2)

你不应该有这样的循环。您应该通过使用

将活动线程暂停一段时间来释放一些时间到CPU
while (true) {
    // Do your processing stuff here.

    // This line ensures that the active thread releases some time
    // to the CPU, allowing closure of the application via Ctrl-C.
    Thread.sleep(numberOfMillisecondsToSleepFor);
}

您可以使用kill从其他终端使用现有代码终止进程,但是您应该通过正确编码循环以满足它来阻止CPU锁定方案。