我无法将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
实例。我正在努力实现的目标是什么,如果是这样的话?