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

  • 相关阅读:
    NOIP 2008 立体图
    JDOJ 1606 数字三角形
    JDOJ 1133 分段公司利润
    NOIP 2011 选择客栈
    NOIP 2014 无线网络发射器选址
    USACO Party Invitations
    NOI 2001 食物链
    NOI 2002 银河英雄传说
    BOI 2003 团伙
    NOIP 2017 奶酪
  • 原文地址:https://www.cnblogs.com/yeahwell/p/7632816.html
Copyright © 2011-2022 走看看