一、总论
在并行编程中,除了“互斥”这个原语外(一般是采用“锁”来实现),还存在“同步(synchronous)”这个原语,这个原语指的是“各个事件按照特定顺序执行”的需求。比如说在生产者消费者模型中,必须要让生产者先生产,消费者才可以进行消费,这就是一种同步行为,是没有办法仅仅依靠锁来实现的。
当涉及互斥时,涉及到的术语是 lock, unlock, mutex
,而涉及到同步是术语是 wait, signal, notify, barrier
等。之前我只重视了互斥的学习,而对于同步语义,则非常忽视。