2017-09-27 158 views
1

下面是该书的一段落Java性能:权威指南。在无限循环期间CPU是否空闲?

您编写了一个包含无限循环的简单脚本。当 脚本执行时,它将占用100%的CPU。以下批处理 工作将做到这一点在Windows:

ECHO OFF 
:BEGIN 
ECHO LOOPING 
GOTO BEGIN 
REM We never get here... 
ECHO DONE 

考虑这将意味着什么,如果该脚本没有消耗 CPU的100%。这意味着操作系统有一些东西,它可能会打印另一行说LOOPING,,但它选择 而不是空闲。在这种情况下,空闲并不会帮助任何人,如果我们做了有用的(冗长的)计算,则强制CPU 定期空闲将意味着获得 需要更长时间才能获得我们所接受的答案。

我很难理解为什么无限循环会让CPU空闲?

+0

这是针对非编程特定问题的错误网站,请尝试[超级用户](http://superuser.com/about)。 – Compo

回答

2

我认为你误解了文本 - 无限循环确实占用了所有可用的CPU周期。

当书说:“但它选择,而不是被闲置”它只是说,如果一个无限循环的脚本没有采取100%的CPU,那么它可能决定成为空闲一段周期(这从来不是这种情况,因为它浪费了可用的处理能力)。