我们当然可以争辩道,即使不通过和mutex合作,我们一样能使用这个假想的condition variable很好的完成功能。是的,我承认作为程序员你可以足够聪明和小心,以至于你实现的版本没有我上面这段代码的问题。但是,这难道不和你去跟设计mutex的人争辩说你明明可以自己通过精心设计实现互斥,根本不用mutex横插一脚这件事一样愚蠢且...
condition.mutex.lock(); ... while (!condition.isSatisified()) { condition.mutex.unlock()...
首先考虑这么一个生产者消费者的场景。生产者会生产数据将其放到dataHandler对象中,然后向消费者发送一条消息。消费者也有dataHandler示例的句柄,并且在接收到生产者的消息后,它将通过dataHandler.getData()来获取数据。假设这个世界上的condition variable全是没有mutex机制的,则消费者的实现代码可能是这样的: 代码的逻辑...