Nio应用总结分析

  1. 常见的IO操作应用模型

    1. 同步阻塞IO(Blocking IO) : 系统内核拷贝数据期间用户线程被阻塞
    2. 同步非阻塞(Non-Blocking IO) : 系统内核拷贝数据期间用户线程轮询, 造成CPU资源浪费
    3. IO多路复用(IO Multiplexing) : 减少CPU在用户线程间的切换时间
    4. 异步IO(Asynchronous IO) : 需要操作系统支持, 目前还不够完善
  2. JDK NIO中核心API对象有哪些?

    1. 缓冲区对象: Buffer
    2. 通道对象: Channel
    3. 选择器对象: Selector
  3. NIO框架的基本应用

    1. Tomcat中NIO的应用
    2. Netty中NIO的应用等
  4. NIO给我们带来了哪些特性应用?

    1. 事件驱动, 单线程多任务
    2. 非阻塞I/O (I/O读写不再阻塞, 而是返回0)
    3. 基于block的传输, 通常比基于流的传输更高效
    4. IO多路复用大大提高了Java网络应用的可伸缩性和实用性
  5. NIO还存在哪些问题?

    1. 使用NIO != 高性能, 当连接数<1000, 并发程度不高或者局域网环境下NIO并没有显著的性能优势
    2. NIO并没有完全屏蔽平台差异, 它仍然是基于各个操作系统的I/O系统实现的, 差异仍然存在. 使用NIO做网络编程构建事件驱动模型并不容易, 陷阱重重
    3. 推荐大家使用成熟的NIO框架, 如Netty, MINA等. 解决了很多NIO的陷阱, 并屏蔽了操作系统的差异, 有较好的性能和编程模型
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值