我有一个阻塞函数,有时它会无限期地挂起,它不受CPU限制,它正在访问外部的东西,也是对非托管代码的调用。我希望它可以在 Windows 或 Unix 上运行
在超时情况下运行此方法的最佳实践是什么?我认为这将涉及运行一个新线程并有一个等待事件。我追求的是最轻量级的代码行和CPU。
Thanks
你会使用wait(timeout=None)
当您使用池和异步调用时,超时等待结果的方法:
>>> import multiprocessing
>>> p = multiprocessing.Pool()
>>> a = p.apply_async(None) # Replace None with the function to execute.
>>> help(a.__class__)
Help on class ApplyResult in module multiprocessing.pool:
class ApplyResult(builtins.object)
| Methods defined here:
|
| __init__(self, cache, callback, error_callback)
|
| get(self, timeout=None)
|
| ready(self)
|
| successful(self)
|
| wait(self, timeout=None)
[...]
并发.futures也有wait
方法或超时get
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)