zoukankan      html  css  js  c++  java
  • 同步、异步与阻塞、非阻塞

    同步阻塞,用户空间的应用程序执行一个系统调用,这意味着应用程序会一直阻塞,直到系统调用完成为止(数据传输完成或者发生错误)。

    同步非阻塞,设备以非阻塞形式打开,这意味着 io 操作不会立刻完成,需要应用程序调用多次来等待完成。

    同步和异步 1)同步:发出一个调用时,在没有得到结果前,该调用就不返回,一旦返回就有结果。2)异步:调用在发出之后就直接返回,所以没有返回结果,换句话说,当一个异步调用发生后,调用者不会立即得到结果,而是在调用发生后,被调用者通过状态通知来通知调用者,或者通过回调函数来处理这个调用。

    阻塞和非阻塞 1)阻塞:调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。2)非阻塞:不能立刻得到结果之前,该调用不会阻塞当前线程。

    BIO:同步并阻塞,一个连接一个线程,适用于链接数量小且固定的架构。      NIO:同步非阻塞:一个请求一个线程,客户端发送的链接请求都会注册到多路复用器

    上,多路复用器轮训到链接有 io 请求时才启动一个线程进行处理,适用于链接比较多,比较短。

    AIO:异步非阻塞,一个有效请求一个线程,适用于链接数目多且长。

  • 相关阅读:
    golang中os/user包用法
    golang中os包用法
    与table有关的布局
    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version
    canvas里调用getImageData的报security的问题
    CSS样式覆盖规则
    windows7文件夹怎样默认图片大图显示?
    Jboss,Tomcat 远程调试配置
    IE(IE6/IE7/IE8)支持HTML5标签
    JS 继承(类式 与 原型式)
  • 原文地址:https://www.cnblogs.com/cing/p/8858071.html
Copyright © 2011-2022 走看看