<p>我想你要找的是一个多处理队列</p>
<p>Python 3:<a href="https://docs.python.org/3/library/multiprocessing.html#exchanging-objects-between-processes" rel="nofollow noreferrer">https://docs.python.org/3/library/multiprocessing.html#exchanging-objects-between-processes</a></p>
<p>Python 2:<a href="https://docs.python.org/2/library/multiprocessing.html#exchanging-objects-between-processes" rel="nofollow noreferrer">https://docs.python.org/2/library/multiprocessing.html#exchanging-objects-between-processes</a></p>
<p>您也可以使用管道(来自同一个库),但它比队列慢得多:<a href="https://stackoverflow.com/questions/26908909/python-3-4-multiprocessing-queue-faster-than-pipe-unexpected/31012573">Python 3.4 multiprocessing Queue faster than Pipe, unexpected</a></p>
<h3>编辑</h3>
<p>“这是如何解决问题的?”</p>
<p>您正试图在子进程中执行代码,您需要一种将数据获取到父进程的方法。如果查看文档,您将看到如下代码片段:</p>
<pre><code>from multiprocessing import Process, Queue
def f(q):
q.put([42, None, 'hello'])
if __name__ == '__main__':
q = Queue()
p = Process(target=f, args=(q,))
p.start()
print(q.get()) # prints "[42, None, 'hello']"
p.join()
</code></pre>
<p>在本例中<code>f</code>是将由子进程执行的代码。你可以在那里做任何你想做的事!制作一个1000行函数。创建一个类,实例化它,然后发疯。将名称从<code>f</code>更改为有意义的名称。将该函数放在不同的文件中并导入它,然后使其执行</p>