首页 > 其他 > 详细

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

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

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)

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!