【Python下进程同步之互斥锁、信号量、事件机制】
原文: http://blog.gqylpy.com/gqy/229 " 一、锁机制: multiprocess.Lock 上篇博客中,我们 千方百计 实现了程序的异步,让多个任务同时在几个进程中并发处理,但它们之间的运行没有顺序。尽管并发编程让我们能更加充分的利用io资源,但是也给我我们带来了新问题, 多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题. 例: # 多进程抢占输出资源 from multiprocessing import Processfrom os import getpidfrom time import sleepfrom random import random def work(i): print("%s: %s is running" %(i, getpid())) sleep(random()) print("%s: %s is done" %(i, getpid())) if __name__ == '__main__': for i in range(5): p = Process(target=work, args=(i,)) p.start() 使用互斥锁维护执行顺序: # 使用锁机制维护执行顺序 from multiprocessing import Process, Lockfrom os import