我的项目语言是C,只能运行一个进程和多个线程。
其中一个线程总是会崩溃,它会导致进程崩溃。
过程的稳定性是非常非常重要的。所以我想知道是否有可能“隔离”这个线程。例如,如果我们可以截获SIGSEGV信号,我们就可以重新启动这个线程。
发布于 2020-12-18 11:39:28
如果一个线程做了一些可能导致崩溃的事情,它可能会影响另一个线程,因为它们共享相同的内存空间,所以没有办法将它们隔离。
你需要修复你的程序,这样它一开始就不会崩溃。首先使用一个内存检查器,比如valgrind。
发布于 2020-12-18 11:57:22
过程的稳定性是非常非常重要的。
然后,找到并修复SIGSEGV的原因是非常非常重要的,而不是通过试图恢复崩溃的线程来“掩盖裂缝”。
为什么?
因为SIGSEGV的根本原因可能是在重新启动的线程中重新触发的错误,导致threads.
发布于 2020-12-18 16:01:32
这取决于坠机的原因。它可能与内存有关,从而导致数据损坏,从而导致进程崩溃。如果程序确实崩溃,并且它是关键的,请使用Monit重新启动它。
https://stackoverflow.com/questions/65351473
复制相似问题