进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,无法保证数据的安全性。所以在 运行的时候需要通过加锁来对进程的限制,以保证数据的安全性,但是带来的是执行效率低下,有并发运行转成串行运行
from multiprocessing import Process, Lock #锁模块 import time class Myprocess(Process): def __init__(self, name, mutex): super().__init__() self.name = name self.mutex = mutex def run(self): self.mutex.acquire() #加锁 print('%s is running 1' % self.name) time.sleep(1) print('%s is running 2' % self.name) time.sleep(1) print('%s is running 3' % self.name) self.mutex.release() #释放 if __name__ == '__main__': mutex = Lock() #实例化锁对象 for i in range(3): p = Myprocess('子进程%s' % i, mutex) p.start()