python 多进程系列 (四) 进程锁

本贴最后更新于 492 天前,其中的信息可能已经水流花落

一、进程锁

1、避免多个进程同时操作同一个值,导致数据混乱
2、通过进程锁,锁定num的值,让进程有序的进行数据修改
3、主进程的锁通过参数传入给子进程使用

import multiprocessing
def demo(num,lock):
    #获取进程锁
    lock.acquire()
    num += 1
    print(num)
    #释放进程锁
    lock.release()

if __name__ == '__main__':
    multiprocessing.set_start_method("spawn")
    lock = multiprocessing.RLock()#创建进程锁
    num = 0
    p_list = []
    for i in range(multiprocessing.cpu_count()-1):
        p = multiprocessing.Process(target=demo,args=(num,lock))
        p.start()
        p_list.append(p)
    for k in p_list:
        k.join()
回帖
请输入回帖内容 ...