1

是否有一种很好的模式可以将多个 JavaLinkedBlockingQueue实例多路复用到一个具有(高效)阻塞等待语义的实例上?

4

1 回答 1

4

是否有一种很好的模式可以将多个 Java 的 LinkedBlockingQueue 实例多路复用到一个具有(高效)阻塞等待语义的实例上?

LinkedBlockingQueue每次调用每个输入都有一个线程take(),然后将元素放入共享输出LinkedBlockingQueue中。

就像是:

public void run() {
    while (!Thread.currentThread().isInterrupted()) {
        try {
            outputQueue.put(inputQueue.take());
        } catch (InterruptedException ie) {
            Thread.currentThread().interrupt();
            return;
        }
    }
}

不知道还能说什么。

于 2013-07-30T13:52:05.353 回答