zmiana zmiennej globalnej podczas przetwarzania wieloprocesowego w python
Tak więc staram się ostatecznie odczytać linię, wykonać kilka obliczeń z informacjami w tej linii, a następnie dodać wynik do jakiegoś globalnego obiektu, ale nigdy nie wydaje mi się, aby działał. Na przykład test jest zawsze 0 w poniższym kodzie. Wiem, że to jest złe i próbowałem robić to w inny sposób, ale nadal nie działa.
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())