zoukankan      html  css  js  c++  java
  • 【图灵学院15】极致优化-高性能网络编程之BIO与NIO区别

    一、Java IO概念

    1.  一个http请求节点

      数据传输

    1)网络传输

      TCP、UDP

    2)通信模型

      BIO、NIO、AIO

      数据处理

    3)应用协议

      HTTP、RMI、WEBSERVICE、Redis、JMS

    4)序列化协议

      JSON、javaobject、Hession

    5)业务处理

      servlet

    二、BIO、NIO性能上的差异

    在同样的请求下,BIO与NIO不同线程数来支撑。

      推断 请求数 线程数
    BIO 请求越多,支持的线程也越多?错误  300  400
    NIO  支持的线程不会随着请求的增加而暴增  300  163

    BIO:

    NIO:同步非阻塞,协调员(多路复用器)

    Tomcat同步阻塞式BIO通信模型:

    http-bio-Acceptor

    ServerSocket.accept()

    读取写入,导致阻塞。

    阻塞:表示在网络传输或者业务处理过程中的阻塞,指创建新线程、网络传输过程、业务处理过程中的阻塞。

     建立连接、写入、读取 ----->同一个线程 

    Tomcat伪异步阻塞式IO通信模型:

    管理线程生命周期、重复利用线程、任务队列管理

    Acceptor->封装提交Task->线程池->分配Work线程

     建立连接----->同一个线程

    写入----->同一个线程

    读取 ----->同一个线程 

    三、通信模型

    四、BIO、NIO具体的示例

    C10K问题

  • 相关阅读:
    jQuery插件学习(一)
    全屏滚动
    Js与Jq 获取浏览器和对象值的方法
    HTML5 布局标签
    CSS3笔记(一)
    CSS的一些思考(一)
    js学习(一)
    CSS Hacks 总结
    CSS样式总结
    HTML标签总结
  • 原文地址:https://www.cnblogs.com/yeahwell/p/7632816.html
Copyright © 2011-2022 走看看