Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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_Python 3.x_Function_Quota - Fatal编程技术网

Python 如何从调用程序开始,对函数中花费的时间设置上限?

Python 如何从调用程序开始,对函数中花费的时间设置上限?,python,python-3.x,function,quota,Python,Python 3.x,Function,Quota,我有一些函数可能需要更长的时间来执行,在这种情况下,我想缩短它们(在这种情况下,我不关心函数中发生了什么以及缩短它的后果) 由于这些函数并不都是我的,我希望从调用程序中施加此控制,而不是在函数本身中执行检查(如果函数中有一个循环,我可以检查所花费的时间,或者在支持它的某些调用上使用超时,这将是一个解决方案) 换句话说,我不想改变函数 这样的机制可用吗? 我的直接想法是以worker函数启动一个线程,并定期检查该线程是否仍然处于活动状态,如果该线程在限制时间后没有返回,则终止该线程。不幸的是,我了

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

由于这些函数并不都是我的,我希望从调用程序中施加此控制,而不是在函数本身中执行检查(如果函数中有一个循环,我可以检查所花费的时间,或者在支持它的某些调用上使用超时,这将是一个解决方案)

换句话说,我不想改变函数

这样的机制可用吗?

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

编辑:请注意,这不是一个副本,那里的解决方案要么指向合作关闭,要么指向进程vs线程。我的问题中提到了这两个问题。我稍微修改了标题以强调控件的位置