當前位置:編程學習大全網 - 網站源碼 - 什麽是阻塞隊列?如何使用阻塞隊列來實現生產者-消費者模型?

什麽是阻塞隊列?如何使用阻塞隊列來實現生產者-消費者模型?

解釋:

在enqueue和dequeue方法內部,只有隊列的大小等於上限(limit)或者下限(0)時,才調用notifyAll方法。如果隊列的大小既不等於上限,也不等於下限,任何線程調用enqueue或者dequeue方法時,都不會阻塞,都能夠正常的往隊列中添加或者移除元素。

阻塞隊列與普通隊列的區別在於,當隊列是空的時,從隊列中獲取元素的操作將會被阻塞,或者當隊列是滿時,往隊列裏添加元素的操作會被阻塞。試圖從空的阻塞隊列中獲取元素的線程將會被阻塞,直到其他的線程往空的隊列插入新的元素。同樣,試圖往已滿的阻塞隊列中添加新元素的線程同樣也會被阻塞,直到其他的線程使隊列重新變得空閑起來,如從隊列中移除壹個或者多個元素,或者完全清空隊列。

  • 上一篇:股市裏的籌碼集中度是指什麽
  • 下一篇:如何用javascript編寫九九乘法表
  • copyright 2024編程學習大全網