zoukankan      html  css  js  c++  java
  • 同步与阻塞,异步与非阻塞的区别(转)

    https://www.cnblogs.com/-900401/p/4015048.html

    很受益的一篇文章,特别是后面对四种模型的解析。

    理解阻塞和非阻塞,同步异步,有一个核心点要搞清楚就是用户发起内核调用的时候,内核处理分两个阶段:一是准备数据,二是把数据拷贝到用户态内存。

    可以近似把内核处理IO操作和用户态线程执行看成是并行(近似看成并行,而不是并发,好理解一些),所以在非阻塞情况下,内核准备数据期间不会影响用户态线程的执行的。

    在进行I/O操作的时候,是将任务交给DMA来处理,请求发出后CPU就不管了,在DMA处理完后通过中断通知CPU处理完成了。I/O操作消耗的cpu时间很少。(https://blog.csdn.net/qq_22660775/article/details/88966832)

  • 相关阅读:
    几个基本trick
    CSP2019 树上的树 口胡
    To do List
    对代码风格的探索(持续更新)
    我回来了。
    年度悲剧
    最短路
    平衡树
    线段树-模板
    jmeter断言之JSON Assertion
  • 原文地址:https://www.cnblogs.com/olivertian/p/10880735.html
Copyright © 2011-2022 走看看