【发布时间】:2015-12-29 20:20:52
【问题描述】:
我正在测试一些代码,以使用Process 和Queue 的多处理来超时函数调用。 Queue.get() 方法采用可选的超时参数。我编写了以下测试以确认当被调用进程花费的时间比调用get 分配的时间长时它会引发超时错误,但它不会引发错误。谁能告诉我我是如何未能正确测试get 超时的?我在 Windows 7 和 python 2。
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
【问题讨论】:
-
Queue.get 的第一个参数是是否阻塞。第二个参数是等待的时间长度(以秒为单位)。
标签: python timeout multiprocessing