并发编程-互斥锁
进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,
而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理 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()