以下是 Java性能:最终指南
一书中的一段。您编写了一个包含无限循环的简单脚本。当那个 脚本被执行,它将消耗100%的CPU。以下批次 工作将在Windows中完成:
ECHO OFF :BEGIN ECHO LOOPING GOTO BEGIN REM We never get here... ECHO DONE
考虑一下如果这个脚本没有消耗100%的话会是什么意思 中央处理器。这意味着操作系统可以做到这一点 do-it可以打印另一行说LOOPING, 但它选择了 而是闲着 。在这种情况下,闲着对任何人都无济于事, 如果我们正在做一个有用的(冗长的)计算,强制CPU 定期闲置意味着需要更长的时间才能获得 我们追求的答案。
我发现很难理解为什么无限循环会让CPU空闲?
答案 0 :(得分:2)
我认为您误解了文本 - 无限循环会占用所有可用的CPU周期。
当这本书说“但它选择了闲置”时,它只是说如果无限循环脚本没有占用100%的CPU,那么它可能已经决定空闲对于某些周期(从来都不是这样,因为它浪费了可用的处理能力)。