进程退出和对线程的影响
process exit and impact on threads
在维护中,我看到项目代码(在linux上的c/c++
中)在出现一些不可恢复的错误时调用libc
exit
函数。然而,这个进程终止调用是跨多个线程使用的(每个线程都面临不可恢复的场景)。现在-
- 进程
exit
可以从非主线程的线程调用而没有任何副作用吗? 无论何时调用
exit
(无论是在主线程中还是在任何其他线程中),它是否保证线程的优雅退出?我理解标准(手册页)对此保持沉默,最好的方法是,启动所有线程的优雅终止,并使用通知机制,main
线程必须被通知优雅终止。但是,由于这是一个正在维护的项目,所以想要在更改之前检查当前的行为是否正确。
我面临的问题是,我可以看到随机崩溃,其中一个线程在exit
调用执行的正当过程下。
对于第一个问题,当您调用exit
(从任何线程,主线程或子线程)时,进程立即退出。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 为什么线程对类变量所做的更改没有影响?
- 线程会影响树莓派的图像处理性能吗?
- 联接线程如何影响主线程中的执行顺序?
- 从第二个线程调用Qt信号有效 - >对连接的插槽没有影响
- 线程更新全局指针时对全局指针的影响
- 为什么跨线程更改共享变量的代码显然没有受到竞争条件的影响
- 内存分配对多线程性能的影响
- 如果多个线程使用同一对象,性能是否受到影响
- 完成的线程是否对 winapi 中的主程序有影响
- 快板5线程影响帧率
- OpenMP线程多于工作对性能的影响是什么?
- 互斥锁的可升级所有权如何影响其他线程
- 通过struct将参数传递给CreateThread(),并在不影响前面线程的情况下更改后续线程的成员
- setrlimit()不影响派生的std::线程
- 从Q线程影响Q对话框
- 进程退出和对线程的影响
- 线程变量的声明和影响