less than 1 minute read

我本来只是想研究下 Condition 怎么用 (因为 java 里没见过),但既然展开了就写一篇记录一下吧。


所谓 synchronization primitives 即是 LockSemaphore 这类 “控制、协调 synchronization” 的工具。在 《分布式 Java 应用:基础与实践》第四章总结其二:并发工具类 里其实介绍了一些,在 python 里这些 primitives 的感性认知 (metaphor) 应该是一致的。

注意 threadingmultiprocessing modules 都提供了这些 primitives,它们在实现上是高度相近的或者就直接是 alias,参考:

那至于这些 primitive 的 class hierarchy,When to use event/condition/lock/semaphore in python’s threading module? 有讨论。

dano’s comment:

Condition is built on top of Lock, and Event and Semaphore are built on top of Condition

具体可以参考下面 answer 提到的文章:Python threads synchronization: Locks, RLocks, Semaphores, Conditions and Queues

Updated:

Comments