【发布时间】:2016-06-16 05:19:21
【问题描述】:
我正在尝试在 python 中理解和实现多处理。
作为一个示例项目,我正在尝试计算给定文件中的行数。
我的电脑有 4 个内核。所以我的目标是为所有 4 个核心提供不同的数据块,并分别计算 4 个块中的行数,最后结合所有 4 个输出的总和。
但我不明白如何实现这个
目前我正在使用以下代码,但问题是我声明了一个全局变量“i”,并且对于所有内核,如果有新行,我将增加 i 值。
from multiprocessing import Pool
def process_line(j):
return j+1
i=0
if __name__ == "__main__":
pool = Pool()
global i
with open('sampleSubmission.csv') as source_file:
for l in source_file:
i=process_line(i)
print i
我想要这样一种方式,即我需要为每个核心使用一个单独的变量,并且我想在该特定核心遇到新行时增加该变量。
文件处理完成后,我想添加所有单独的变量以获得文件中的总行数。
【问题讨论】:
标签: python python-2.7 python-3.x parallel-processing multiprocessing