zoukankan      html  css  js  c++  java
  • BIO,NIO,AIO

    同步阻塞IO(JAVA BIO):
        同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。

    异步阻塞IO(Java NIO): 
       异步阻塞,应用程序发起一个IO操作以后,不等待内核IO操作的完成,等内核完成IO操作以后会通知应用程序,(服务器SELECT程序监听是否有IO就绪,有就绪的就启动线程就绪处理)这其实就是同步和异步最关键的区别,同步必须等待或者主动的去询问IO是否完成,那么为什么说是阻塞的呢?因为此时是通过select系统调用来完成的,而select函数本身的实现方式是阻塞的,而采用select函数有个好处就是它可以同时监听多个文件句柄(如果从UNP的角度看,select属于同步操作。因为select之后,进程还需 要读写数据),从而提高系统的并发性! 

    (Java AIO(NIO.2))异步非阻塞IO: 
       在此种模式下,用户进程只需要发起一个IO操作然后立即返回,等IO操作真正的完成以后,应用程序会得到IO操作完成的通知,此时用户进程只需要对数据进行处理就好了,不需要进行实际的IO读写操作,因为真正的IO读取或者写入操作已经由内核完成了。   

    NIO,AIO,区别,NIO内核空间到用户空间,应用程序负责,AIO,数据的读取和写入有内核完成;

  • 相关阅读:
    windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)
    大前端涉猎之前后端交互总结3:使用PHP进行表单数据删除与查询
    异常处理
    java 触发鼠标点击事件 向linux发送指令
    反射机制
    静态方法,类方法,属性方法
    python 类
    python 正则表达式
    python 加密模块
    python xml 与配置文件处理
  • 原文地址:https://www.cnblogs.com/lelouchKOP/p/5953209.html
Copyright © 2011-2022 走看看