stream和channel的区别
来源:7-2 NIO Family一览
慕码人3191957
2021-02-04
老师您好,我想请问下,channel对于stream有什么优势呢?我网上查了很多资料好像都没有十分好的解释,另外stream和channel在应用场景上,能不能具体举一下例子说明呢,我查了挺久的都好像挺模糊的
写回答
1回答
-
最明显的区别:一个是阻塞读取,一个是到达读取
stream 是BIO,也就是阻塞模式,分IN OUT两个,无论是IN还是OUT,在进行消息处理是是阻塞当前线程的,也就是需要等待对方的数据到达。
channel 是NIO,可以看作其包含了IN OUT是一个通道的概念,channel的实现有很多,针对本地文件的,针对网络的,针对内存的,不同的其表现并不完全相同,但可以理解为:channel的数据消费是将数据写入缓冲区buffer,或从buffer读取数据;这个过程是可以通过selector来辅助监听channel的状态,从而实现较少的线程调度多个IO的方式。
112021-02-05
相似问题