【发布时间】:2014-01-20 04:08:58
【问题描述】:
我尝试阅读http://docs.python.org/dev/library/multiprocessing.html 的文档,但我仍在为多处理队列、池和锁定而苦苦挣扎。现在我能够构建下面的示例。
关于队列和池,我不确定我是否以正确的方式理解了这个概念,如果我错了,请纠正我。我想要实现的是 一次处理 2 个请求(本例中数据列表有 8 个)那么,我应该使用什么?池来创建 2 个可以处理两个不同队列(最多 2 个)的进程,还是我应该每次只使用 Queue 来处理 2 个输入?锁定将正确打印输出。
import multiprocessing
import time
data = (['a', '2'], ['b', '4'], ['c', '6'], ['d', '8'],
['e', '1'], ['f', '3'], ['g', '5'], ['h', '7']
)
def mp_handler(var1):
for indata in var1:
p = multiprocessing.Process(target=mp_worker, args=(indata[0], indata[1]))
p.start()
def mp_worker(inputs, the_time):
print " Processs %s\tWaiting %s seconds" % (inputs, the_time)
time.sleep(int(the_time))
print " Process %s\tDONE" % inputs
if __name__ == '__main__':
mp_handler(data)
【问题讨论】:
标签: python python-2.7 multiprocessing