I/O

阻塞IO

首先服务器端开启一个Socket监听固定端口(启动一个线程),等待客户端连接,等待和客户端建立连接(阻塞等待),从连接的数据流中读取数据,客户端下线后,服务器端的线程随之终止

服务端读取数据的时候,如果目前流中不存在数据,服务器处理线程空等。服务器切换线程,消耗时间,效率不高,网络传输基于流的方式效率不高

每个阻塞IO请求都会消耗线程池中的一个线程。

字节流的顶级父类为 : InputStream输入流  OutPutStream 输出流

FilterOutPutStream,.FilterInputStream ,BufferedOutPutStream, BufferedInputStream 属于过滤流,依赖于inputStream,OutPutSteam,使用修饰者模式,来包装节点留

修饰者模式:创建修饰类,用来包装原有的类,在保持方法签名的前提下,提供额外的功能。

字符流顶级父类为:Reader  Writer

各种流是阻塞的,当一个线程调用read或者write方法时该线程被阻塞,直到有一些数据被读取或者被写入,在此期间该线程不能再做任何事

NIO

为所有的原始类型(Boolean类型除外),提供缓存支持的数据容器,  使用它可以提供非阻塞式的高伸缩性网络。

面向块的非阻塞

使用多路复用技术,做到同一个连接并发处理多个请求。

NIO是面向缓冲区的,数据读取到一个稍后处理的缓冲区,需要时可在缓冲区内前后移动,使用一个线程从某通道发送请求获取数据,它仅仅能得到目前可用数据,没有数据时什么都不会获取,直至数据变的可读之前线程可用继续做其他事情(线程请求立即返回)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值