python - 如何从调用程序强制执行函数所用时间的上限?
问题描述
我有一些函数可能需要更长的时间才能执行,在这种情况下我想缩短它们(在这种情况下,我不关心函数中发生了什么以及停止它的后果)
由于这些函数不都是我的,我想从调用程序施加这种控制,而不是在函数本身内实现检查(如果函数中有一个循环可以检查花费的时间,这将是一个解决方案,或在某些支持它的调用上使用超时等)。
换句话说,我不想更改功能。
有这样的机制吗?
我的直接想法是使用该函数作为 worker 启动一个线程,并定期检查该线程是否仍处于活动状态,如果它在限制时间后没有返回,则将其杀死。不幸的是,我了解到以非合作方式杀死线程是不可能的(这将是一个进程的解决方案,但使用进程是不切实际的,因为它会使现有的共享对象复杂化)。
编辑:请注意,这不是如何限制 Python 中函数调用的执行时间的副本,那里的解决方案要么指向协作关闭,要么指向进程与线程。两者都在我的问题中得到解决。我稍微修改了标题以强调控件的位置。
解决方案
推荐阅读
- sql - plpgsql EXECUTE 语句中的嵌套引号
- javascript - 连接两个 base64 URL 字符串(图片)
- c++ - 特征有效的成对列减法
- javascript - 将 JavaScript ArrayBuffer 转换为 8 位数字数组
- ksqldb - Return column names in KSQL in KTable
- java - 带有连接的Spring数据jap多表列
- bash - 读取文本文件并将每一行存储在 bash 脚本中的不同变量中
- swift3 - Alamofire.upload 操作在库外部失败
- python - 0-9 在一个数据帧的索引的最左边数字中多久重复一次?
- kotlin - 延迟()准确性问题/作业调度程序的奇怪行为