#并发编程
基于锁的并发数据结构
互斥锁提供了互斥:一次只能有一个线程获得互斥锁。互斥锁保护数据结构是通过显式地阻止对它所保护数据的真正并发访问来实现的。这称为串行化:线程轮流访问被互斥锁保护的数据。它们必须串行而非并发的访问它。因此,必须仔细考虑数据结构的设计,使得能够真正的并发访问。虽然有些数据结构比其他数据结构具有更大的并发范围,但在所有情况下,其思想都是相同的:受保护的区域越小,串行化的操作就越少,并发的潜力也就越大。
多线程中的虚假唤醒
避免虚假唤醒,就不应该采用 if 条件判断,而应该采用 while 循环判断