如何使用在后端执行的长时间运行的 C/C++ 代码杀死 python 解释器?

Posted

技术标签:

【中文标题】如何使用在后端执行的长时间运行的 C/C++ 代码杀死 python 解释器?【英文标题】:How to kill python interpreter with long running C/C++ code executed in the backend? 【发布时间】:2017-04-01 00:18:02 【问题描述】:

在 python documentation 中,似乎从 python 端发送的信号无法杀死长时间运行的 C/C++ 进程:

纯粹在 C 中实现的长时间运行的计算(例如对大量文本进行正则表达式匹配)可以在任意时间内不间断地运行,而不管接收到任何信号。计算完成时将调用 Python 信号处理程序。

有解决办法吗?我可以在 C/C++ 端实现一些东西(即回调函数?)来捕获键盘中断吗?

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

找到了解决方法here,似乎将长时间运行的 CPython 程序设置为守护线程是处理它的一种方法。

【讨论】:

以上是关于如何使用在后端执行的长时间运行的 C/C++ 代码杀死 python 解释器?的主要内容,如果未能解决你的问题,请参考以下文章

如何针对长时间执行的脚本关闭闪存保护?

如何停止长时间运行的 BigQuery 作业?

超时服务器端长时间运行的请求[重复]

实现对长时间运行的服务器端方法的客户端调用的正确方法

用于长时间运行代码的 gevent 探查器

为啥存储过程要花很长时间才能执行,但过程中的代码自己运行得很快?