我正在测试一些代码,以使用 Process
和 Queue
进行多处理来使函数调用超时。 Queue.get()
方法采用可选的超时参数。我编写了以下测试来确认当被调用进程花费的时间比调用 get
中分配的时间长时它会引发超时错误,但它不会引发错误。谁能告诉我如何无法正确测试 get
超时?我使用的是带有 python 2 的 Windows 7。
import time
from multiprocessing import Process, Queue
def f(q, t):
time.sleep(t)
q.put(0)
if __name__ == '__main__':
q = Queue()
p = Process(target=f, args=(q, 15, ))
p.start()
x = q.get(1)
print "received ", x
最佳答案
来自documentation ,Queue.get
按顺序接收 2 个参数:block
和 timeout
。你应该这样调用它
q.get(timeout=1)
关于Python 多处理 get 不会超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518450/