我不明白为什么消费者&生产者不能同时访问同一队列!如果消费者将从队列的头部CCD_ 1并且如果生产者在队列的后部CCD_。在这种情况下,我看不出使用正常队列有任何危险!
按下和弹出将更改队列的内部状态。调用push
的线程可能在更改期间被抢占,这意味着调用pop
的线程将看到队列处于无效状态。
如果您没有使用线程安全的队列,您可以通过锁定调用来避免这种情况,即串行化对队列的访问。这意味着,如果一个线程在修改队列时被抢占,另一个线程将无法获取锁并修改队列。