您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何将Queue引用传递给pool.map_async()管理的函数?

如何将Queue引用传递给pool.map_async()管理的函数?

以下代码似乎有效:

import multiprocessing, time

def task(args):
    count = args[0]
    queue = args[1]
    for i in xrange(count):
        queue.put("%d mississippi" % i)
    return "Done"


def main():
    manager = multiprocessing.Manager()
    q = manager.Queue()
    pool = multiprocessing.Pool()
    result = pool.map_async(task, [(x, q) for x in range(10)])
    time.sleep(1)
    while not q.empty():
        print q.get()
    print result.get()

if __name__ == "__main__":
    main()

请注意,队列是从manager.Queue()而不是multiprocessing.Queue()获得的。感谢Alex向我指出了这个方向。

其他 2022/1/1 18:41:52 有419人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶