stream和channel的区别

来源:7-2 NIO Family一览

慕码人3191957

2021-02-04

老师您好,我想请问下,channel对于stream有什么优势呢?我网上查了很多资料好像都没有十分好的解释,另外stream和channel在应用场景上,能不能具体举一下例子说明呢,我查了挺久的都好像挺模糊的

写回答

1回答

Qiujuer

2021-02-05

最明显的区别:一个是阻塞读取,一个是到达读取

stream 是BIO,也就是阻塞模式,分IN OUT两个,无论是IN还是OUT,在进行消息处理是是阻塞当前线程的,也就是需要等待对方的数据到达。


channel 是NIO,可以看作其包含了IN OUT是一个通道的概念,channel的实现有很多,针对本地文件的,针对网络的,针对内存的,不同的其表现并不完全相同,但可以理解为:channel的数据消费是将数据写入缓冲区buffer,或从buffer读取数据;这个过程是可以通过selector来辅助监听channel的状态,从而实现较少的线程调度多个IO的方式。

1
1
慕码人3191957
非常感谢!
2021-02-05
共1条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程