很多时候,我们需要在多个进程中同时写一个文件,如果不加锁机制,就会导致写文件错乱
这个时候,我们可以使用multiprocessing.Lock()
我一开始是这样使用的:
import multiprocessing lock = multiprocessing.Lock() class MatchProcess(multiprocessing.Process): def __init__(self, threadId, mfile, lock): multiprocessing.Process.__init__(self) self.threadId = threadId self.mfile = mfile self.lock = lock def run(self): while True: self.lock.acquire() try: self.mfile.write('111111111111111111' + '\n') finally: self.lock.release() if __name__ == '__main__': mf = open('test.lst', 'w') for i in range(15): p = MatchProcess(i, mf, lock) p.start()
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。