我有一个ArrayBlockingQueue<String> queue;
和一个Author
对象将元素放在那里:
public static final String END = "db8097f51282a0188e988d6bfa994430258e24ce";
[...]
for (String text : texts) {
queue.put(text);
Thread.sleep(300);
}
queue.put(END);
和一个Printer
个对象,它们从qeue中获取元素并将它们打印在控制台上:
String text;
do {
text = queue.take();
if (!text.equals(Author.END))
System.out.println(text);
} while (tekst != Author.END);
我想通知Printer
对象,不会有更多元素放入qeue。我无法将null
传递给ArrayBlockingQueue
,所以我决定在内部传递非常不寻常的String
。我认为这是不好的解决方案。
我可以以某种方式关闭ArrayBlockingQueue
吗?
答案 0 :(得分:0)
你的解决方案似乎很好。要考虑两点: