在Apple的“并发编程指南”的“从线程迁移”一节中,有 改变生产者 – 消费者实现 ,它宣称使用GCD可以简化典型的多步骤线程互斥+条件variables实现。 通过调度队列,可以将生产者和消费者实现简化为一个调用: dispatch_async(queue, ^{ // Process a work item. }); 当您的生产者完成工作时,所要做的就是将该工作添加到队列中,让队列处理该项目。 生产者 – 消费者问题也被称为有界缓冲区问题,但是上面没有提到缓冲区,其边界或消费者,更不用说阻止生产者和消费者,以避免过度/不足的运行。 这怎么可能是一个有效的解决scheme?