小编use*_*483的帖子

Python - 防止子线程受到SIGINT信号的影响

我有一个程序,其中包含一个运行程序(主线程),该运行程序创建 1 个或多个子线程,这些子线程主要使用子进程来触发第 3 方应用程序。

我希望在收到 SIGINT 后能够正常终止所有线程,因此我在主线程中定义了一个处理程序,如下所示:

signal.signal(signal.SIGINT, handler)
Run Code Online (Sandbox Code Playgroud)

我最初认为,一旦收到 SIGINT,它只会影响我的主线程,然后我将能够管理子线程终止。

然而,我实际观察到的是,按 control+c 也会影响我的子线程(我发现,一旦我按 control+c,子线程中的子进程就会引发 RC 512 异常)。

有人可以建议是否有可能只有主线程会检测到这个信号而不影响子线程?

python multithreading signals

4
推荐指数
1
解决办法
2585
查看次数

标签 统计

multithreading ×1

python ×1

signals ×1