几年前,当我获得学位时,我的老师告诉我,如果我在C中进行无限循环,它会使我的计算机崩溃,使其无需使用所有处理器资源,我需要重新启动系统让事情再好。今天我在Windows 7计算机上测试了相同的情况,我看到我的计算机没有崩溃,我的处理器资源只是“空闲”。从5年前到今天有什么变化来改变这个特定的事件?
答案 0 :(得分:6)
无限循环只会"崩溃"操作系统,如果操作系统不支持抢占式多任务处理。在任何体面的操作系统中,调度程序都会使该过程暂时中断,并允许其他内容运行。
无论如何,如果资源使用率很低,请查看生成的代码 - 编译器可能已经做了一些聪明的事情,比如优化整个事情。
答案 1 :(得分:3)
你的老师告诉你一些开始时并不属实的事情,所以不会发生这种情况并不奇怪。
最多,无限循环将使您的CPU达到100%,但在任何现代操作系统上,其他进程仍会获得时间片,您可以轻松杀死它。如果程序员的一个简单错误使得整个机器很容易挂起,操作系统就不会有多大用处。
答案 2 :(得分:0)
与8年前不同,多核处理器现在已经普遍使用,这意味着单个信息流程现在只能占用单个核心,而其余核心可以自由地完成其他工作。即使这样,你也必须运行一个非常糟糕的操作系统,以允许一个繁忙的循环过程来占用整个系统。
答案 3 :(得分:0)
要真正让你陷入困境,提升线程并将优先级处理为实时,并创建与核心一样多的线程,(保存你的工作)。