Java NIO Pipe vs BlockingQueue

Max*_*000 10 java nio

我刚刚发现它只有一个NIO工具,Java NIO Pipe,用于在线程之间传递数据.使用此机制是否优于通过队列传递的更传统的消息,例如ArrayBlockingQueue?

Pet*_*rey 6

通常,为另一个线程传递数据的最简单方法是使用ExecutorService.这包括队列和线程池(可以有一个线程)

当您拥有支持NIO通道的库时,可以使用管道.如果要在线程之间传递ByteBuffers数据,这也很有用.

否则它通常简单/快速地使用ArrayBlockingQueue.

如果你想在线程之间更快地交换数据,我建议你看一下Exchanger,但它不像ArrayBlockingQueue那样通用.

Exchanger和GC-less Java