【问题标题】:killing thread causing SIGSEGV杀死导致 SIGSEGV 的线程
【发布时间】:2010-12-08 20:33:06
【问题描述】:

一些信息:我必须编写一个控制某些设备的程序(这是基本功能)。但我必须编写某种插件系统来启用其他自定义功能。我无法控制这些插件的源质量,所以我想我将为每个加载的插件创建一个线程,然后它将在它自己的主循环中运行。我能够捕获标准 C++ 异常,但问题是我不知道如何处理信号。最好的方法是异步取消插件的线程,让他有机会清理和释放资源,或者干脆杀死他,但不知道如何找出哪个线程导致当前信号。有没有办法在不明确将当前执行的线程信息保存在某个变量中的情况下做到这一点?或者这完全是个坏主意,我应该创建单独的进程然后运行插件?

【问题讨论】:

    标签: multithreading posix kill signals


    【解决方案1】:

    是的,这完全是个坏主意。线程是一种协作的、共享几乎所有东西的、不提供任何隔离的编程模型。这只是适合这项工作的错误工具。

    【讨论】:

      【解决方案2】:

      我会使用传统的流程​​来完全隔离并使用 IPC 机制进行通信。

      【讨论】:

        猜你喜欢
        • 2018-02-27
        • 1970-01-01
        • 2015-07-27
        • 2011-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-08
        • 2021-11-13
        相关资源
        最近更新 更多