将队列传递给进程在执行程序中运行

时间:2016-10-18 20:02:42

标签: python-3.x queue python-multiprocessing executor

我无法将multiprocessing.Queue作为参数传递给concurrent.futures.ProcessPoolExecutor中运行的函数:

def my_task(q):
    while condition:
        network_task()
        q.put(current_state)

queue = Queue()
loop = asyncio.new_event_loop()
executor = ProcessPoolExecutor(max_workers=8)
loop.run_in_executor(executor, my_task, queue)
queue.get()

这会引发RuntimeError: Queue objects should only be shared between processes through inheritance。我希望my_task不确定的运行时在运行时提供有关其状态的更新,以便主循环可以相应地执行操作,在需要的地方和时间安排其他my_task实例。我正在努力实现的目标是什么,如果是这样的话?

0 个答案:

没有答案