-1

我有一个通过包装器运行并作为网格(Linux)上的作业提交的应用程序。y 任务是监视进程的 RAM 和虚拟内存使用情况,如果进程由于内存问题而失败,请再次将其重新提交到具有更高内存要求的网格(使用某些开关)。我认为这可以通过从监视主应用程序的应用程序中调用一个单独的线程来实现,并在失败的情况下重新启动主应用程序。我正在寻求更好地解决这个问题的建议。

谢谢鲁奇

4

2 回答 2

0

线程将不起作用,因为 C 和 C++要求从main函数返回会杀死所有正在运行的线程(礼貌Do child threads exit when parent thread terminates)。

您需要将其设为另一个进程,也许是一个启动该进程的脚本,然后管理您的应用程序。

于 2013-06-26T05:58:39.330 回答
0

通常的做法是检查内存分配何时失败,即 malloc()。如果 malloc() 失败,则表明您的系统内存几乎已满,在这种特殊情况下,您可以做您喜欢做的事情。

于 2013-06-26T05:58:54.783 回答