gpt4 book ai didi

python - 什么可以使 signal.signal 长时间阻塞?

转载 作者:太空宇宙 更新时间:2023-11-04 06:36:43 29 4
gpt4 key购买 nike

我正在为远程调试注册一个信号:

signal.signal(signal.SIGUSR1, lambda x,y: remote_debug(x, y, emp_id))

虽然通常非常快,但日志语句显示此命令(注册)有时需要 5 到 10 秒才能执行。是什么原因造成的?我该如何解决?

最佳答案

Python 回调代码实际上不会在 Python 中立即调用。 Python 中的 C 代码只是在收到信号时设置一个标志。它只在返回到解释器时运行处理程序。如果您的代码路径当前在已编译代码的扩展模块中工作,则处理程序在完成之前不会运行。

修复它的唯一方法是确保执行路径不会在 C 函数中花费大量时间。您当时正在运行什么功能?另一个罪魁祸首是标准的 time.sleep() 方法。请改用 signal.pause() 。

关于python - 什么可以使 signal.signal 长时间阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938238/

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