首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使线程崩溃不会导致进程崩溃?

如何使线程崩溃不会导致进程崩溃?
EN

Stack Overflow用户
提问于 2020-12-18 11:34:14
回答 3查看 51关注 0票数 0

我的项目语言是C,只能运行一个进程和多个线程。

其中一个线程总是会崩溃,它会导致进程崩溃。

过程的稳定性是非常非常重要的。所以我想知道是否有可能“隔离”这个线程。例如,如果我们可以截获SIGSEGV信号,我们就可以重新启动这个线程。

EN

回答 3

Stack Overflow用户

发布于 2020-12-18 11:39:28

如果一个线程做了一些可能导致崩溃的事情,它可能会影响另一个线程,因为它们共享相同的内存空间,所以没有办法将它们隔离。

你需要修复你的程序,这样它一开始就不会崩溃。首先使用一个内存检查器,比如valgrind。

票数 1
EN

Stack Overflow用户

发布于 2020-12-18 11:57:22

过程的稳定性是非常非常重要的。

然后,找到并修复SIGSEGV的原因是非常非常重要的,而不是通过试图恢复崩溃的线程来“掩盖裂缝”。

为什么?

因为SIGSEGV的根本原因可能是在重新启动的线程中重新触发的错误,导致threads.

  • Because无休止地崩溃/重新启动。
  • 的根本原因可能是另一个线程中的问题...这可能会在导致SIGSEGV的执行步骤中继续触发problem.
  • Because,线程可能已经破坏了共享数据结构,或者做了其他可能导致其他线程崩溃、卡住或以其他方式表现不正确的事情。
票数 1
EN

Stack Overflow用户

发布于 2020-12-18 16:01:32

这取决于坠机的原因。它可能与内存有关,从而导致数据损坏,从而导致进程崩溃。如果程序确实崩溃,并且它是关键的,请使用Monit重新启动它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65351473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档