一、BlockinngQueue<T>类、BoundedBlockingQueue<T>类
生产者消费者问题,可以用信号量+互斥锁 或者 条件变量+互斥锁 来解决,还分为有界和无界缓冲区两种情形,如下图:
有界缓冲区:
生产者:
信号量+互斥锁:1,2,3,4,5
条件变量+互斥锁:2,1,3,5,4(外框)
消费者:
信号量+互斥锁:1,2,3,4,5
条件变量+互斥锁:2,1,3,5,4(外框)
无界缓冲区: