大家好

最近研究python 的 multiprocessing 如何使用

multiprocessing可以說是python 把多執行緒打包好的方便使用套件

相當方便

要注意的就是要 更新 的值

要放在 multiprocessing 的 value 裡面

給大家參考囉

import multiprocessing

#放置2D資料
array2D = []
for i in range(0,5):
    tll = []
    for q in range(0,5):
        #放置multiprocessing的值
        tll.append(multiprocessing.Value('i', 0))
    array2D.append(tll)
#更新值的程式
def test_func(i, varp):
    with varp[i][i].get_lock():
        #在對角線+1
        varp[i][i].value += 1
#新增執行緒
processes = []
for i in range(0,5):
    #放入參數
    p = multiprocessing.Process(target=test_func, args=(i, array2D))
    processes.append(p)
    p.start()
#等待跑完
for process in processes:
    process.join()
#查看參數
for xx, aa in enumerate(array2D):
    for yy, cc in enumerate(aa):
        print(' array2D = ',xx,yy,' = ',cc.value)