也许我没有很好地阅读过文档,但是我没有找到有关lock或rlock的aquire工作方式的更多信息...不管这些进程在执行什么语句(即使它们是而不是关键部分)。还是仅阻止尝试访问关键部分的进程
谢谢!
答案 0 :(得分:2)
从文档中
multiprocessing.Lock
类一个非递归锁对象:threading.Lock的近似模拟。一旦进程或线程获取了锁,则随后从任何进程或线程获取锁的尝试都将阻塞,直到释放为止;否则,该锁将被释放。任何进程或线程都可能释放它。除非另有说明,否则在适用于线程的线程和锁的概念和行为将在多处理中复制。
因此,当您调用acquire()
(注意使用block
参数的默认值)时,您的过程将:
此机制允许您在逻辑中定义“关键部分”,这意味着一次仅一个进程将执行该特定功能(即播放音频文件)