我使用几个生产者得到了一些数据,希望写入 multiprocessing 库创立的 Queue 中,然后由一个消费者读取并做后期处理,请问怎么样写才好,我用 while true 的方式一直假死。
这是主要代码:
q = multiprocessing.Queue(1001)
if __name__ == '__main__':
q = multiprocessing.Queue(1001)
pool = multiprocessing.Pool(processes=10)
for year in [2008]:
if year is not None:
pool.apply_async(solve_year, (year,))
pool.apply_async(consume)
pool.close()
pool.join()
在生产者中使用了:
for i in b.list_():
info_detail = InfoDetail(i)
for i in info_detail.get_dict():
d[i] = d[i].encode('utf-8')
if d.has_key('status'):
continue
q.put(d)
这是消费者的部分代码:
while not q.empty():
d = q.get(block=True)
print d
Queue中的队列被取空了? 然后Get就阻塞了?
贴个代码看看