美文网首页程序员
java bio 和 nio

java bio 和 nio

作者: 青城楼主 | 来源:发表于2017-10-18 10:39 被阅读33次

BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开,每个线程都会有自己的栈内存,会导致内存过大,stackmemryflow,增大cpu线程切换压力。

NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。

具体可类比场景为:

BIO:一家餐馆,每来一个客人就专门指派一个服务员为其服务,这样虽然服务质量好了,但是服务员过多,餐厅都挤不下去了,stackmemeryflow,每个客人除了点菜,买单需要服务外,其他用餐时间大部分不需要服务,资源浪费,服务员过多,调度难度大。

NIO:餐馆新增一个前台(selector)服务员,餐桌(selectorkey)安装一个铃,前台安装一个传呼反应器(reactor),客人来人,前台负责登记,客人需要服务,按铃讲需求,前台登记,所有需求服务由前台调度,10个服务员(线程池),有需求了就叫服务员去服务,服务完回到前台待命!

类比到netty:

1.chinel 相当于客户,前台相当于server端的boss,反应器相当于work,放映器上面有对应的每个桌号的接收器,客人来了,boss接收,安排到具体桌位上,并且登记注册到反应器上面(EventLoopGroup),反应器上面的桌号灯接收器启动(EnentLoop),chinel通过按铃这个通道(chinelpiple)进行输入呼叫自己的需求,发出声音,前台(selector)记录下来,安排服务员去服务(ServerChinnel) 

相关文章

  • BIO,NIO,AIO 总结

    BIO,NIO,AIO 总结 Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 ...

  • BIO,NIO,AIO 总结

    BIO,NIO,AIO 总结 Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 ...

  • NIO教程 ——检视阅读(上)

    NIO教程 ——检视阅读 参考 BIO,NIO,AIO 总结 Java NIO浅析 Java NIO 教程——极客...

  • Java IO相关

    一Java中的IO机制 BIO NIO AIO 二 BIO 主要实现方式 : InputStream和Output...

  • 高性能NIO编程详解,实现无服务器文件传输

    BIO NIO(new io) java1.4开始推出放入可非阻塞IO。java.nio包可解决BIO阻塞的不足但...

  • BIO、NIO、AIO整理

    Java对BIO、NIO、AIO的支持: Java BIO (blocking I/O): 同步并阻塞,服务器实现...

  • Java BIO和NIO

    [TOC] BIO 自Java被发明以来,IO都是其中很重要的一块。最初伴随1.0的IO,到1.4出现的NIO再到...

  • java bio 和 nio

    BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,...

  • java BIO和NIO

    BIO: blocking I/O 。 BIO就是传统I/O,其相关的类和接口在 java.io 包下 BIO 是...

  • 网络编程-NIO 理论部分

    NIO- no_block IO 或者叫NewIO JAVA 1.4引入的 1 、NIO和BIO的区别 1....

网友评论

    本文标题:java bio 和 nio

    本文链接:https://www.haomeiwen.com/subject/wcesuxtx.html