Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中从守护进程线程触发主线程中的异常_Python_Multithreading_Python Multithreading - Fatal编程技术网

在Python中从守护进程线程触发主线程中的异常

在Python中从守护进程线程触发主线程中的异常,python,multithreading,python-multithreading,Python,Multithreading,Python Multithreading,如何从Python中的守护进程线程触发运行阻塞代码的主线程中的异常 我有一个守护进程线程,它定期检查数据库中的记录,以指示其当前进程应该终止(即用户按下了“取消”按钮)。在我的主非守护进程线程中,我正在运行一个对外部进程的阻塞调用,我无法轻松修改该进程以正常终止。然而,当我手动触发一个键盘中断时,主线程可以优雅地处理一个正常的键盘中断 因此,如果我的守护进程线程接收到终止命令,我如何在主线程中引发异常以终止进程?您可以使用该属性获取子进程返回代码。如果它与零不同,就提出它 编辑:我混淆了子流程和

如何从Python中的守护进程线程触发运行阻塞代码的主线程中的异常

我有一个守护进程线程,它定期检查数据库中的记录,以指示其当前进程应该终止(即用户按下了“取消”按钮)。在我的主非守护进程线程中,我正在运行一个对外部进程的阻塞调用,我无法轻松修改该进程以正常终止。然而,当我手动触发一个键盘中断时,主线程可以优雅地处理一个正常的键盘中断


因此,如果我的守护进程线程接收到终止命令,我如何在主线程中引发异常以终止进程?

您可以使用该属性获取子进程返回代码。如果它与零不同,就提出它


编辑:我混淆了子流程和多处理模块。但是,多处理模块中有一个属性与子流程returncode属性类似。

通常使用消息队列完成。 看


然而,它不会抢占您的主线程,您必须主动轮询它。也许有了信号,你就能得到你所需要的。

在深入研究线程文档之后,我终于找到了解决方案。

链接应该是:这是阻止Django编写代码的罕见解决方案。