简单理解NIO

NIOJava Non-blocking IO(Java非阻塞I/O)

 

关键词:

Channel(通道)  Buffer(缓存区) Selector(选择器)

 

Channel(通道)类似于Java传统读取IO中的Stream,但是区别是一个Stream一般是只能读或者只能写,比如InputStream只能readOutputStream只能write。但是Channel既能读也能写

 Buffer(缓存区),NIO中读写的东西一般都要先放在Buffer

Selector(选择器)是NIO中最关键的一个部分,Selector的作用就是用来轮询每个注册的Channel,一旦发现Channel有注册的事件发生便获取事件然后进行处理

 

重点了解数据传输的过程,不论读写都先到buffer

 

Selector

Handle

register

 

当前留下的NIOnetty

 

问题:buffer之间也有数据交换?selecter的事件处理 channel上的事件定义

 

socketservlet有什么异同?

Socketj2se在网络编程这块最基本的东西。把一系列网络io复杂性封装。但是光有io,光能传输数据,不足以完成标准化的网络通信。所以在这个基础上,加入了协议支持。比如web容器(tomcat)加入了http协议的解析(所谓的协议,就是一系列带有标准格式的字符串)。而把里面可以独立给程序员的模型接口抽取出来,就是Servlet。所以,Servlet可以看做是web容器运行的一部分逻辑(请求和响应,即requestresponse其实可以看成是dto,最后执行完servlet.service方法后,由容器传递给socket类的outputstream,完成相关操作)。而Socket则是web容器的核心(负责交换协议)

 

参考:

Java NIO:NIO概述

Java Socket实战之六 使用NIO包实现Socket通信

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值