python多进程-多元数组

发布时间 2023-04-19 11:32:04作者: 摇头晃脑学知识

多进程分配数组任务,并原地修改

from multiprocessing import Pool, Manager, cpu_count
import numpy as np
import time


def func(i, j):
    # wait 100s
    time.sleep(0.5)
    return i + j


if __name__ == '__main__':
    mat = np.zeros((10, 10)).tolist()

    pool = Pool(processes=3)
    
    print('start')
    for i in range(10):
        for j in range(i+1, 10):
            print(f'join {i} {j}')
            mat[i][j] = pool.apply_async(func, (i, j,))
    print('end')
    pool.close()
    pool.join()
    print('all done')

    for i in range(10):
        for j in range(i+1, 10):
            xcorr = mat[i][j].get()
            mat[i][j] = xcorr
            mat[j][i] = xcorr
            
    print(mat)