gpt4 book ai didi

python - 多线程环境下python中kill挂起函数

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:23 25 4
gpt4 key购买 nike

我想终止一个执行时间过长的函数。重要的是这个函数在 C 扩展中(包装在 Cython 中),我希望这个解决方案在多线程环境中工作。因为它被包裹在 Cython 中,所以这个线程可以容纳 GIL。

我无法控制这个扩展中发生的事情(我认为这段代码不会响应中断)。

我相当确定这段代码只能在 Unix 机器上运行。但是问题Python kill hanging function不适用,因为我认为信号在多线程环境中不起作用(AFAIK 未定义哪个线程将捕获它们)--- 但我在这方面可能是错误的 :) 所以请纠正我。

有什么办法可以解决这个问题而不产生新的进程。

最佳答案

我的解决方案是将此函数包装在另一个 python 进程中,并在需要时终止该进程。

给任何用谷歌搜索这个问题的人的一条建议:由于进程启动时间(启动解释器、加载模块然后将数据加载到内存中)可能会持续几秒钟,因此您需要对函数调用进行分组,这样这种开销就不会造成损失;你(所以真的没有可重用的解决方案)。

示例解决方案已发布到另一个问题:How to interrupt native extension code without killing the interpreter? .

关于python - 多线程环境下python中kill挂起函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com