What are the advantages of Blocking Queue in Java?

后端 未结 2 2005
臣服心动
臣服心动 2020-12-31 04:18

I am working on a project that uses a queue that keeps information about the messages that need to be sent to remote hosts. In that case one thread is responsible for puttin

相关标签:
2条回答
  • 2020-12-31 04:23

    The main advantage is that a BlockingQueue provides a correct, thread-safe implementation. Developers have implemented this feature themselves for years, but it is tricky to get right. Now the runtime has an implementation developed, reviewed, and maintained by concurrency experts.

    The "blocking" nature of the queue has a couple of advantages. First, on adding elements, if the queue capacity is limited, memory consumption is limited as well. Also, if the queue consumers get too far behind producers, the producers are naturally throttled since they have to wait to add elements. When taking elements from the queue, the main advantage is simplicity; waiting forever is trivial, and correctly waiting for a specified time-out is only a little more complicated.

    0 讨论(0)
  • 2020-12-31 04:41

    They key thing you eliminate with the blocking queue is 'polling'. This is where you say

    In that case the 2nd thread needs to check the queue for the information periodically.

    This can be very inefficient - using much unnecessary CPU time. It can also introduce unneeded latencies.

    0 讨论(0)
提交回复
热议问题