有什么方法可以传送两个通道吗?

时间:2018-10-15 11:33:15

标签: java nio

我有一个ReadableByteChannel和一个WritableByteChannel,现在我想将输出从可读字节通道传输到可写字节通道。换句话说,当可读通道中有可用字节时,我想将它们写入可写通道。

我可以在没有新线程的情况下执行此操作吗?

1 个答案:

答案 0 :(得分:1)

好吧……没有任何用户空间线程,就无法在Java中做到这一点。在标准Java中,无法告诉操作系统“重新插入”两个文件描述符并使数据传输短路。

(我不知道有任何现代主流OS支持这种功能。尽管这不是一个荒谬的主意。如果有人知道具有此类opf功能的OS的示例,请发表评论...)

但是,如果您使用SelectableChannelSelector API,则线程可以在执行其他操作时插入“管道”,包括其他通道上的其他(基于选择器的)I / O。< / p>