Understanding Blocking in starmap - Python Multiprocessing

398 Views Asked by At

In the python docs, it says that starmap blocks until the result is ready. Does this mean that we can safely update a variable in main process by the results of child processes like this ?

from multiprocessing import Pool, cpu_count
from multiprocessing import Process, Manager

all_files = list(range(100))

def create_one_training_row(num):
    return num 

def process():
    all_result = []
    with Pool(processes=cpu_count()) as pool:
        for item in pool.starmap(create_one_training_row, zip(all_files)):
            all_result.append(item)
    return all_result

if __name__ == '__main__':
    ans = process()
    print(ans)
    print(sum(ans))
0

There are 0 best solutions below