面试官让我手写一个生产者消费者模式 (2)

这样,当队列满的时候,会阻塞生产者继续往队列添加数据,直到有消费者来消费了队列中的数据。当队列空的时候,也会阻塞消费者从队列获取数据,直到有生产者把数据放入到队列中。

阻塞队列最好使用有界队列(代码中指定的容量为10)。因为,如果生产者的速度远远大于消费者时,就会有可能造成队列的元素一直增加,直到内存耗尽。当然,这也需要看实际的业务情况。如果能保证生产者的数量在可控范围内,不会给内存造成压力,用无界队列,也未尝不可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpysyf.html