【发布时间】:2011-09-03 05:05:49
【问题描述】:
我有一个启动多个线程的应用程序。 我正在使用信号处理程序来捕获信号。
我不希望我的应用程序在SIGSEGV 上退出;我只想终止产生信号的线程,并在其他线程中继续整个应用程序的流程。
有可能吗?
【问题讨论】:
-
@asveikau 它是服务器应用程序,我将在 SIGGEV 上发送警报,但我不想因为一个线程崩溃而影响其他线程。是不是和c++中的异常处理不一样?
-
如果您想与崩溃隔离,请使用多个进程,而不是线程。如果错误代码与服务器的其余部分位于相同的地址空间中,它很可能会使您的进程的其余部分处于错误状态。更不用说你应该编写你的服务器,使其不会首先崩溃.....
-
投反对票有什么理由吗?我才知道,这是不好的做法。但是我不应该在这个网站上清除我的疑问吗?
-
不,它与 C++ 中的异常处理不同。看这里讨论pthread_sigmask():linuxjournal.com/article/2121
-
什么是
SIGGEV?你的意思是SIGSEGV?
标签: c signal-handling