码迷,mamicode.com
首页 > 其他好文 > 详细

同步与阻塞,异步与非阻塞的区别(转)

时间:2019-05-17 13:44:58      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:操作   四种   sdn   同步异步   log   执行   details   解析   art   

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)

同步与阻塞,异步与非阻塞的区别(转)

标签:操作   四种   sdn   同步异步   log   执行   details   解析   art   

原文地址:https://www.cnblogs.com/olivertian/p/10880735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!