如何确保我的函数在被杀死之前完全执行



我有一个在单线程上运行的c++函数。

例如

,

function()
{
 Line 1; commit(ms sql) 
 Line 2; commit(oracle)
}

此功能需要完整完成。

我想知道,如果有人从任务管理器中杀死进程,是否有一种方法可以防止应用程序在第1行和第2行之间中断。

如果1执行,那么2也必须执行。

这可能吗?如果可能,实现这一目标的最佳方法是什么?

提前致谢

没有办法做到这一点。如果内核决定你的进程应该死亡,那么你的进程就会死亡。

如果第一行和第二行修改了一些数据结构

可能是,您需要某种形式的事务机制。

可以,例如:

  1. 包括Line 1和Line 2在一个数据库事务中

  2. make Line 1和2修改一些临时数据结构,并使用像cas这样的原子指令来提交临时文件

相关内容

  • 没有找到相关文章

最新更新