2014-03-06 101 views
0

最近我一直在想,当一个进程被杀死(显式或无意)使用类似任务管理器或在代码中查杀时会发生什么。 O/S在内存分配等方面做了什么?当一个进程/任务被终止时会发生什么

在我看来,大多数(如果不是全部)内存通常在终止时被释放,这是怎么发生的以及什么可以破坏这个(如果有的话)?

回答

1

取决于应用程序。某些应用程序允许开发人员检测应用程序何时被杀死(即使通过任务管理器),并允许他们运行代码进行清理等。如果程序正在访问非托管资源(文件,流,数据库等)并且未明确处理清理那些可能会让他们在记忆中散落。

+0

这是否也适用于动态分配内存?例如在C++中使用指针,并且无法处理突然终止进程? –

+0

我相信这适用于任何程序 - 尽管O/S最终可能会清理内存。我不是100%确定,但我已经超过300年没有在C++工作:-) – schmoopy

相关问题