首页 > 解决方案 > 如何从调用程序强制执行函数所用时间的上限?

问题描述

我有一些函数可能需要更长的时间才能执行,在这种情况下我想缩短它们(在这种情况下,我不关心函数中发生了什么以及停止它的后果)

由于这些函数不都是我的,我想从调用程序施加这种控制,而不是在函数本身内实现检查(如果函数中有一个循环可以检查花费的时间,这将是一个解决方案,或在某些支持它的调用上使用超时等)。

换句话说,我不想更改功能。

有这样的机制吗?

我的直接想法是使用该函数作为 worker 启动一个线程,并定期检查该线程是否仍处于活动状态,如果它在限制时间后没有返回,则将其杀死。不幸的是,我了解到以非合作方式杀死线程是不可能的(这将是一个进程的解决方案,但使用进程是不切实际的,因为它会使现有的共享对象复杂化)。

编辑:请注意,这不是如何限制 Python 中函数调用的执行时间的副本,那里的解决方案要么指向协作关闭,要么指向进程与线程。两者都在我的问题中得到解决。我稍微修改了标题以强调控件的位置。

标签: pythonpython-3.xfunctionquota

解决方案


推荐阅读