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

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

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

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

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

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

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

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

  • 相关阅读:
    琴生(Jensen)不等式
    基本不等式
    集成学习之梯度提升树(GBDT)
    EM 算法原理
    FSMC驱动8位TFT
    GitHub 上有什么嵌入式方面的项目?
    在SPI_FLASH上建立文件系统
    百为STM32开发板教程——从LED流水灯到UCGUI手机界面
    STM32F1_外部NorFlash存储程序代码
    nor flash之擦除和写入
  • 原文地址:https://www.cnblogs.com/cing/p/8858071.html
Copyright © 2011-2022 走看看