可执行文件在无限大小写中运行多长时间(任何时间限制)

时间:2012-04-26 11:02:17

标签: c++ c executable exe

一个小疑问 我有一个应用程序(exe)在无限循环中运行,执行多长时间。我的意思是如果我的系统打开它会执行多年。或者是否有运行申请的时间限制。

(如果这个问题不正确,请指出正确的参考资料)

10 个答案:

答案 0 :(得分:4)

如果应用程序在无限循环中运行,即

while(1)
{
  //...
}

如果遇到错误且代码未正确处理,它将停止,否则它将无限期运行。

如果存在与操作系统相关的信号以终止进程,它将终止。这可能来自用户手动尝试终止进程,或者可能由于系统上的一般内存不足而发生。这些类型的操作系统信号通常是您无法控制的。但是,您可以实现一种方法来检测您的进程是否已被终止(可能通过使用子进程),如果意外终止该进程将重新启动/恢复进程。

如果您将进程添加到操作系统的启动脚本中,即使出现电源故障或可能导致重新启动的其他类型的事件,您也会受到保护。

答案 1 :(得分:4)

  

如果我的系统处于开启状态,它会执行多年

这取决于操作系统。可以配置Unix系统(使用ulimit -t),这样一旦消耗了一定的CPU时间,进程就会被自动终止。

答案 2 :(得分:2)

只要计算机能够运行,程序就会一直运行。

但是,如果您的程序可能导致堆栈溢出或其他崩溃

例如(将永远运行的程序)

int main(){
    while(true){
        int i = 0;
    }
}

例如(崩溃程序,相当确定这实际上会崩溃)

int main(){
    while(true){
        int *i = new int;
    }
}

答案 3 :(得分:2)

理论上它可以永远执行。但大多数程序复杂并不完全是内存效率。它可能会及时消耗越来越多的内存,并可能达到进程内存限制。

在x86 Windows系统上,process limit通常为2GB

答案 4 :(得分:1)

它将一直执行,直到您重新启动或以其他方式终止进程。

如果它真的是一个无限循环你会很烦恼,但很快就会杀死它,因为其他应用程序将遭受盒子上的CPU饥饿。如果你是多核的话,这不是一个交易破坏者,但是看到其他所有人都放慢脚步仍然是一种刺激。

答案 5 :(得分:1)

这将是永恒的计划。重启或系统挂起都会终止进程

答案 6 :(得分:1)

只要给出所有必需的资源,就会运行无限循环。

答案 7 :(得分:1)

简单的答案是,它可能不会像你期望的那样永远运行。

您的操作系统(尤其是旧版本的Windows)可能需要重新启动 - 示例:Windows 95和Windows 98(现已打补丁)中存在一个着名的错误,导致这些系统在49.7天的正常运行时间后停止运行({{3} })。 我希望最新版本的Windows不会出现这种问题。

它还取决于您的操作系统的调度程序。大多数时候可以运行高优先级任务。我听说过一些较旧的Unix系统,其中低优先级的任务多年来一直没有机会运行! 。无论如何,我们不会在桌面操作系统中遇到这种极端情况。

答案 8 :(得分:1)

维基百科的一个例子:

  

2005年,Novell报告了一台具有6年正常运行时间的服务器。[2] [3]。   虽然这可能听起来很不寻常,但这实际上很常见   服务器在工业环境下维护,主机关键   申请,考虑银行系统。

总是至少有一个过程会一直运行。

答案 9 :(得分:1)

我只想指向Wikipedia

  

2005年,Novell报告了一台具有6年正常运行时间的服务器。

从事为服务器编写软件的业务,这些流程仅在维护操作中停止。它们预期永远运行。然而,在实践中,我们分配我们的负载,使维护发生的频率远高于每6年一次,但几个月并不罕见。