如何确保我的函数在被杀死之前完全执行
c++ How to make sure that my function execute completly before getting killed
我有一个在单线程上运行的c++函数。
例如,
function()
{
Line 1; commit(ms sql)
Line 2; commit(oracle)
}
此功能需要完整完成。
我想知道,如果有人从任务管理器中杀死进程,是否有一种方法可以防止应用程序在第1行和第2行之间中断。
如果1执行,那么2也必须执行。
这可能吗?如果可能,实现这一目标的最佳方法是什么?
提前致谢
没有办法做到这一点。如果内核决定你的进程应该死亡,那么你的进程就会死亡。
如果第一行和第二行修改了一些数据结构
可能是,您需要某种形式的事务机制。
可以,例如:
-
包括Line 1和Line 2在一个数据库事务中
-
make Line 1和2修改一些临时数据结构,并使用像cas这样的原子指令来提交临时文件
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- C++,系统无法执行指定的程序
- 使用C++中的模板和运算符重载执行矩阵运算
- 如何确保C++函数在定义之前声明(如override关键字)
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 执行函数时导致崩溃的变量
- 无论条件是否为true,if总是在c++中执行
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 如何确保槽在特定线程的上下文中执行?
- 有没有一种标准方法来确保一段代码在全局范围内执行
- 如何确保方法在该对象的生存期内仅执行一次?
- 如何确保函数在全局变量的任何 ctor 之前执行
- 我如何确保Fopen()相对于可执行的目录打开一个文件,而不是我当前的目录
- 确保QSerialPort.close在程序执行完成之前完成
- 我如何确保例行程序按时执行
- 如何确保我的函数在被杀死之前完全执行
- 确保一个函数总是在所有其他函数之前执行(一次)
- 调试与发布可执行文件有何不同?
- c++ -确保硬盘(驱动器)在程序执行期间不空闲
- 如何确保在编译时没有执行路径到达某一行