多路复用Java的LinkedBlockingQueue

时间:2013-07-30 13:49:01

标签: java concurrency queue

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

1 个答案:

答案 0 :(得分: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;
        }
    }
}

不确定还有什么要说的。