这个问题与我前面的问题一个有关..阻塞队列 - 需要更多信息
在有阻塞性质被提及作为一个优势。
我试图开发一些简单的代码来演示阻塞性质,但我卡住了。我只是尝试制作大小为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