這個問題與我前面的問題一個有關..阻塞隊列 - 需要更多信息
在有阻塞性質被提及作爲一個優勢。
我試圖開發一些簡單的代碼來演示阻塞性質,但我卡住了。我只是嘗試製作大小爲4的BlockingQueue
,並嘗試添加5個元素,並以java.lang.IllegalStateException
結尾。有人可以給我看一個阻止BlockingQueue
性質的代碼示例嗎?
public static void main(String[] args) {
BlockingQueue<String> bq = new LinkedBlockingQueue<String>(4);
try {
bq.offer("A");
bq.offer("B");
bq.offer("C");
bq.offer("D");
bq.offer("E");
System.out.println("1 = " + bq.take());
System.out.println("2 = " + bq.take());
System.out.println("3 = " + bq.take());
System.out.println("4 = " + bq.take());
System.out.println("5 = " + bq.take());
System.out.println("6 = " + bq.take());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
我用這個代碼段。在這種情況下,我試圖將5個元素放入大小爲4的隊列中。在這種情況下,應將4個元素(A,B,C,D)添加到隊列中。然後我打印時打電話給take()
方法。當我致電System.out.println("1 = " + bq.take());
時,是否不應該將「E」自動插入隊列中?因爲它獲得一個空閒插槽?
謝謝..我用 「的LinkedBlockingQueue」 – 2009-05-21 13:59:47
真棒,是你所需要的一切?我現在正在研究一個例子,如果你仍然希望我發佈它 – 2009-05-21 14:01:07
更好地發佈它。只是一個簡短的例子:) – 2009-05-21 14:02:02