为什么我应该在生产者/消费者问题中使用同步队列



我不明白为什么消费者&生产者不能同时访问同一队列!如果消费者将从队列的头部CCD_ 1并且如果生产者在队列的后部CCD_。在这种情况下,我看不出使用正常队列有任何危险!

按下和弹出将更改队列的内部状态。调用push的线程可能在更改期间被抢占,这意味着调用pop的线程将看到队列处于无效状态。

如果您没有使用线程安全的队列,您可以通过锁定调用来避免这种情况,即串行化对队列的访问。这意味着,如果一个线程在修改队列时被抢占,另一个线程将无法获取锁并修改队列。

最新更新