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问题

  • 相关阅读:
    csuoj 漫漫上学路
    sql函数
    sql基本
    查看webdriver API
    Jmeter应用-接口测试
    http协议
    Jmeter .jmx 改为.jtl
    Jmeter遇到打不开的问题
    测试要点
    apt-get安装mysql
  • 原文地址:https://www.cnblogs.com/yeahwell/p/7632816.html
Copyright © 2011-2022 走看看