gpt4 book ai didi

java - 阻塞队列与生产者消费者模式的经典实现

转载 作者:行者123 更新时间:2023-12-02 10:58:50 24 4
gpt4 key购买 nike

我了解到,在实现生产者消费者模式时,我们可以使用 BlockingQueue 代替经典的 wait()notify()。我的问题是,哪种实现效率更高?在一篇关于阻塞队列的文章中写道:“您不需要使用 waitnotify 在生产者和消费者之间进行通信”

了解更多:http://javarevisited.blogspot.com/2012/02/producer-consumer-design-pattern-with.html#ixzz2lczIZ3Mo “。这种简单性是否会以牺牲效率为代价?

最佳答案

BlockingQueue 会更快,因为它使用等待/通知或同步来进行队列访问。所有并发包都使用原子类实现无锁算法。

考虑一个包含 100 个元素的队列和 1000 个想要完成其工作的线程。使用同步实现,对于每个元素,999 个线程需要等待,直到 1 个线程选择了它的任务。使用无锁算法,100 个线程同时选择他们的任务,只有其他 900 个线程需要等待。

关于java - 阻塞队列与生产者消费者模式的经典实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20184688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com