前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NIO介绍

NIO介绍

作者头像
云飞扬
发布2022-04-25 14:18:55
2120
发布2022-04-25 14:18:55
举报
文章被收录于专栏:星汉技术星汉技术

NIO介绍

1、简介

BIO:同步阻塞式IO。

NIO:同步非阻塞IO,它是JDK1.4中提出的一套新的IO机制,区别与传统的BIO(Blocking IO)的同步阻塞工作方式。

  • 阻塞、非阻塞:讨论的是线程的状态,当线程因某些原因被挂起,不能继续执行,不再争夺cup资源则称之为线程被阻塞住了。
  • 同步、异步:从并发参与者角度考虑,多个参与者是否需要互相等待协调,如果任务的执行需要双方互相等待、互相协调,则为同步,否则为异步。

2、NIO需求背景

传统服务器结构,针对于每一个客户端都需要在服务器端创建对应线程来处理,一个客户端一个线程,而线程开辟运行是非常耗费资源的,并且服务器所能支持的最大并发线程数量是非常有限的,所以当高并发到来时,服务器一次创建过多线程,会存在性能瓶颈,甚至宕机。所以想到用少量的线程同时处理多个客户端的连接。

然而,在传统BIO中ACCEPT、CONNECT、READ、WRITE 方法会产生阻塞, 一旦阻塞住线程,该线程被挂起后就没有机会为其它客户端服务,所无法实现少量线程处理多个客户端。为了解决这些问题 ,NIO技术出现了。

3、特点

BIO:面向流操作字节字符,具有方向性,同步阻塞式IO。

  • InputStream
  • OutputStream
  • Reader
  • Writer

NIO:面向通道操作缓冲区,可以双向传输数据,同步非阻塞式IO。

  • Channel
  • Buffer
  • Selector
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022/03/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NIO介绍
    • 1、简介
      • 2、NIO需求背景
        • 3、特点
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档