导致程序冻结的原因

时间:2011-03-22 09:27:17

标签: system restart

根据我编程遇到问题时编程的经验,无论是来自无法处理的异常,还是应该检查错误的一段代码,但是没有,并且扔了一个。什么会导致程序将系统完全冻结到需要重启的程度。

编辑:谢谢你的回答。至于语言和操作系统这个问题的灵感来自我玩Fallout和游戏一小时两次冻结导致我必须重新启动xbox,所以我猜c ++。

4 个答案:

答案 0 :(得分:2)

百万种不同的东西。最常见的是:

  1. 产生过多的线程或进程,这会淹没操作系统调度程序。
  2. 吞噬太多内存,这会让内存管理器陷入页面错误地狱。

答案 1 :(得分:2)

在Dotnet / Java类型的环境中,很难抓住系统,因为运行时会让你的代码远离操作系统。

更接近金属说C或C ++,装配等你必须与系统的其他部分公平对待 - 如果你没有它已经抓住了Petzold的副本并观察/实验自己的'样板'代码量让一个窗口运行...

更接近,在驾驶员级别下,各种各样的事情都可能发生......

答案 2 :(得分:2)

有许多原因,内部或外部导致应用程序陷入僵局,更一般的情况是程序要求某些东西,但没有给出导致无限等待的东西,实际的例子是,程序将一些文本写入文件,但是当它要打开文件进行写入时,任何其他应用程序都会打开同一个文件,因此请求的应用程序将等待(在某些情况下如果编码不正确则冻结),直到它获得独占控制该文件。

导致重新启动系统的严重冻结是指要求的文件对操作系统非常重要。但是,您可能不需要重新启动系统以使其恢复正常,除非冻结的程序是用生成本机二进制文件的语言编写的,即C / C ++是精确的。因此,如果应用程序是用一种与托管代码概念一致的语言编写的,就像任何.NET语言一样,它就不需要重新启动系统就可以恢复正常。

答案 3 :(得分:0)

页面错误,尝试访问无法访问的数据或内存(访问冲突),不兼容的数据类型等。