繁体   English   中英

如何在python多线程环境中限制函数执行时间?

[英]How to limit function execution time in python multithreading environment?

我有一个运行大量并发线程(至少200个)的脚本。 每个线程都会执行一些非常复杂的评估,这可能会花费大量时间。 评估方法是用C实现的,我无法更改。 我想限制每个线程的方法执行时间。 请指教。

据我对您的问题的了解,使用多处理而不是多线程可能是一个很好的案例。 多处理将允许您利用系统上的所有可用资源-如果您不小心,则可以利用其中的一些资源。

线程实际上并不会并行运行,因此除非您正在大量等待I / O或类似的操作,否则从单独的进程中调用它会更有意义。 您可以使用Python多处理库从Python脚本中调用它,也可以使用用C编写的包装器并使用某种形式的进程间通信 第二种选择将避免仅运行一些C代码而启动另一个Python实例的开销。

您可以调用time.sleep(或执行其他任务,并检查系统时钟是否经过了时间),然后在所需的时间间隔后检查结果,从而允许在使用结果时所有尚未完成的进程继续运行。 或者,如果您当时不在乎,则可以发送信号终止该过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM