zoukankan      html  css  js  c++  java
  • java基础

    总结

    BIO

    同步并阻塞

    线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。

    NIO

    同步非阻塞(由于最后依然要本线程去操作,因此是“同步”;由于是立即返回,因此是“非阻塞”)

    线程发起IO请求,立即返回;操作系统在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。

    在Reactor模式中,事件分离者等待某个事件或者可应用或个操作的状态发生(比如文件描述符可读写,或者是socket可读写),事件分离器就把这个事件传给事先注册的处理器(事件处理函数或者回调函数),由后者来做实际的读写操作。

    AIO

    异步非阻塞(由于是操作系统的线程在做IO操作,完成后再通知用户线程,因此是“异步”;由于是立即返回,因此是“非阻塞”)

    线程发起IO请求,立即返回;操作系统做好IO操作的准备之后,由操作系统起一个线程去做IO操作,直到操作完成或者失败;再通过调用注册的回调函数通知用户线程做IO操作完成或者失败的后续操作。

    在Proactor模式中,事件处理者(或者代由事件分离者发起)直接发起一个异步读写操作(相当于请求),而实际的工作是由操作系统来完成的。发起时,需要提供的参数包括用于存放读到数据的缓存区,读的数据大小,或者用于存放外发数据的缓存区,以及这个请求完后的回调函数等信息。事件分离者得知了这个请求,它默默等待这个请求的完成,然后转发完成事件给相应的事件处理者或者回调。

    参考

    两种高效的服务器设计模型:Reactor和Proactor模型

    BIO,NIO,AIO的区别

  • 相关阅读:
    14.[保护模式]TSS任务段
    13.[保护模式]陷阱门
    12.[保护模式]中断门
    11.[保护模式]调用门
    10.[保护模式]长调用与短调用
    9.[保护模式]代码的跨段跳转流程
    8.[保护模式]段权限检查
    7.[保护模式]段描述符DB位
    6.[保护模式]段描述符属性_S位_TYPE域
    5.[保护模式]段描述符属性_P位_G位
  • 原文地址:https://www.cnblogs.com/frankcui/p/13584092.html
Copyright © 2011-2022 走看看