изменение глобальной переменной при многопроцессорной обработке в python

То, что я пытаюсь сделать в конечном счете, это прочитать строку, выполнить некоторые вычисления с информацией в этой строке, затем добавить результат к какому-то глобальному объекту, но я никак не могу получить его для работай. Например, test всегда равен 0 в приведенном ниже коде. Я знаю, что это неправильно, и я пытался сделать это другими способами, но это все еще не работает.

import multiprocessing as mp

File = 'HGDP_FinalReport_Forward.txt'
#short_file = open(File)
test = 0

def pro(temp_line):
    global test
    temp_line = temp_line.strip().split()
    test = test + 1
    return len(temp_line)

if __name__ == "__main__":
    with open("HGDP_FinalReport_Forward.txt") as lines:
        pool = mp.Pool(processes = 10)
        t = pool.map(pro,lines.readlines())
5
задан RatDon 12 March 2015 в 05:07
поделиться