回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>给定以下Python代码:</p>
<pre><code>import multiprocessing
def unique(somelist):
return len(set(somelist)) == len(somelist)
if __name__ == '__main__':
somelist = [[1,2,3,4,5,6,7,8,9,10,11,12,13,2], [1,2,3,4,5], [1,2,3,4,5,6,7,8,9,1], [0,1,5,1]]
pool = multiprocessing.Pool()
reslist = pool.map(unique, somelist)
pool.close()
pool.join()
print "Done!"
print reslist
</code></pre>
<p>现在想象一下,这个玩具示例中带有整数的列表非常长,我想在这里实现以下目标:如果somelist中的一个列表返回True,则杀死所有正在运行的进程</p>
<p>这就引出了两个问题(可能还有更多我没有想到的问题):</p>
<ul>
<li><p>当其他进程正在运行时,如何从已完成的进程“读取”或“侦听”结果?例如,如果一个进程正在处理来自<code>somelist</code>的<code>[1,2,3,4,5]</code>,并且在所有其他进程之前完成,那么我如何在此时读取该进程的结果</p>
</li>
<li><p>假设在其他进程运行时可以“读取”已完成进程的结果:如何将此结果作为终止所有其他运行进程的条件?<br/><br/>
e、 g.如果一个进程已完成并返回<code>True</code>,我如何将此作为终止所有其他(仍在运行的)进程的条件</p>
</li>
</ul>