并发编程-互斥锁

进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,

而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理 Lock

#互斥锁:在主进程有一个锁,子进程也要复制一个锁。使得程序更顺序,不会错乱,但是运行效率有降低。

from multiprocessing import Process,Lock  # Lock 是导入锁模块
import time

def task(name,mutex):
    mutex.acquire()  # 抢锁
    print('%s 1'%name)
    time.sleep(1)
    print('%s 2'%name)
    time.sleep(1)
    print('%s 3'%name)
    mutex.release()  # 释放锁

if __name__ == '__main__':
    mutex=Lock()  # 调用锁
    for i in range(3):
        p=Process(target=task,args=('进程%s' %i,mutex))
        p.start()

 

posted on 2019-02-20 09:17  赫晓蕊  阅读(90)  评论(0编辑  收藏  举报

导航