Multiprocessing - Shared Array

前端 未结 2 601
小鲜肉
小鲜肉 2021-01-05 19:26

So I\'m trying to implement multiprocessing in python where I wish to have a Pool of 4-5 processes running a method in parallel. The purpose of this is to run a total of tho

2条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-05 19:51

    Not tested, but something like that should work. The array and lock are shared between processes.

    from multiprocessing import Process, Array, Lock
    
    def f(array, lock, n): #n is the dedicated location in the array
        lock.acquire()
        array[n]=-array[n]
        lock.release()
    
    if __name__ == '__main__':
        size=100
        arr=Array('i', [3,-7])
        lock=Lock()
        p = Process(target=f, args=(arr,lock,0))
        q = Process(target=f, args=(arr,lock,1))
        p.start()
        q.start()
        q.join()
        p.join()
    
        print(arr[:])
    

    the documentation here https://docs.python.org/3.5/library/multiprocessing.html has plenty of examples to start with

提交回复
热议问题