擅长:python、mysql、java
<p>以下非常简单的代码将许多工人的数据收集到一个CSV文件中。worker获取一个键并返回一个行列表。父进程一次处理多个密钥,使用多个工作线程。当每个键完成后,父级将输出行按顺序写入CSV文件。在</p>
<p>注意秩序。如果每个工作人员都直接写入CSV文件,那么他们将出现故障或相互踩踏。让每个工人写入自己的CSV文件会很快,但之后需要将所有数据文件合并在一起。在</p>
<h2>来源</h2>
<pre><code>import csv, multiprocessing, sys
def worker(key):
return [ [key, 0], [key+1, 1] ]
pool = multiprocessing.Pool() # default 1 proc per CPU
writer = csv.writer(sys.stdout)
for resultset in pool.imap(worker, [1,2,3,4]):
for row in resultset:
writer.writerow(row)
</code></pre>
<h2>输出</h2>
^{pr2}$