说明总结

同步异步:说的是kernel返回处理信息的方法策略

针对程序中碰到耗时任务时,传递给Kernel  Kernel处理信息的方式  有异步api函数是异步 没的话是同步

IO立即返回:主函数中(task函数) 传递任务信息给Kernel,Kernels收到(onTask函数),这个耗时任务我完成之后我会再告诉你的(onFinish) 这是异步

IO完成之后返回:这个是同步 就是一个return即可!

堵塞非堵塞:说的是应用程序执行耗时任务的状态 

针对的是程序中碰到耗时任务主程序的运行会不会wait 

不wait就是非堵塞  wait就是堵塞  是说的一个程序的一个任务点状态!

例子

小张喜欢喝咖啡,同时养了好多狗;
要完成的事情:小张煮咖啡然后喝咖啡
1.小张:  application
2.咖啡壶:kernel 内核
3.煮咖啡:耗时任务
4.小狗大黑:查询信息流 send() rev()
5.小狗大黄:查询信息流 send() rev()
6.小狗大白大红:查询信息流 send() rev()  同步阻塞:
小张派大黑去看咖啡煮好没,大黑等咖啡煮开了(同步)才回来,
小张也一直在等待(堵塞) ;同步非阻塞:
小张派大黄去看咖啡煮好没,大黄看了一眼就回来了,过了一会,大黄再去看看咖啡煮好没(异步),
小张啥也没有干,还是一直等着(同步)异步非阻塞:
小张派大白和大红去看咖啡煮好没,煮咖啡是task,小张就开始看电视了(非堵塞)
大白和大红到了厨房后,大白就回来告诉小张,大红已经到厨房啦(onTask异步);
过了一会咖啡煮好了,大红回到客厅告诉小张(onFinish)异步阻塞:
小张派大白和大红去看咖啡煮好没,煮咖啡是task,小张心很急非要一直等着 就开始等着信息(堵塞)
大白和大红到了厨房后,大白就回来告诉小张,大红已经到厨房啦,咖啡煮着呢 (onTask异步);
过了一会咖啡煮好了,大红回到客厅告诉小张(onFinish)
小张这才放松了,继续干其他的了!感觉有些焦虑啊!

图示

从上面的图可以看出来,其实不管是任何模式,内核的处理方式都是一样的,都是
1. wait for data(等待数据);
2. copy data from kernel to user(拷贝数据到用户层)。
而产生这三种模式的差别在于中间使用的api函数不同。

https://blog.csdn.net/qq_32725491/article/details/78679414

Swoole同步/异步/阻塞/非阻塞的理解相关推荐

  1. 异步/同步、阻塞/非阻塞的理解

    异步/同步.阻塞/非阻塞的理解 [同步和异步] 通俗的讲: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式.  异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个 ...

  2. 深入理解并发/并行,阻塞/非阻塞,同步/异步

    北京 | 深度学习与人工智能 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共3359个字,11张图,预计阅读时间:9分钟. 1.阻塞,非阻塞 首先,阻塞这个词来自操作系统的线程 ...

  3. 深入理解非阻塞同步IO和非阻塞异步IO

    这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...

  4. 聊聊对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)

    一.关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题. 1. 为什么redis能以单工作线 ...

  5. 一篇文章理解 同步异步、阻塞非阻塞

    前述 同步异步,阻塞非阻塞是一些非常常见的概念,但是对于开发者来说往往是用到了很难说清楚. 笔者专门整理了下这方面的概念,作此文以记之. 这部分内容可能存在一些争议,如有不同意见欢迎评论交流. 概念 ...

  6. 正确理解同步/异步和阻塞/非阻塞的区别:

    之前一直把异步和非阻塞混为一谈,在 了解BIO和NIO的区别时才发现了两者的差异,看了网上很多文章觉得说的总是差点意思,下面是个人理解: 1.同步 非同步 阻塞 非阻塞 概念 怎样理解阻塞非阻塞与同步 ...

  7. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  8. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...

    常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据. 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTT ...

  9. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...

    网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...

  10. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章

    来源:编程新说 网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTT ...

最新文章

  1. 投稿近2000,NAACL 2019接收率仅为22.6%|附录取论文名单
  2. as3(actionScript3.0) 操作摄像头(Camera)实例
  3. SQLServer 存储过程
  4. 在校园里捉到一只小鸟,怎么办?
  5. L4,C16:差1墩,从张数最多的套上去找
  6. blender, 创建多边形面片
  7. Pycharm远程连接Linux服务器
  8. python3获取两个日期之间所有日期,以及比较大小
  9. MFC初探 —— 子窗体相对于显示屏位置固定
  10. cmake导入so库_cmake编译.so库体积非常大,求解答
  11. abap中读取excel中不同的sheet数据_Python 如何将数据写入Excel的不同或同一个工作簿中...
  12. CMD命令制定打印机,打印测试页
  13. 《复仇者联盟4:终局之战》剧情
  14. JS五彩连珠小游戏(Canvas绘制)
  15. bi 工具 市场排行榜_常用的5款数据分析BI软件,你用过哪个?-工具
  16. 全国近三成高考状元被曝有加分(图)
  17. nodejs爬虫网络图片
  18. 师董正伟:商务部受理微软涉垄断案
  19. 使用phpQuery采集图片示例–php采集方式之一
  20. UVa11134 - Fabled Rooks(贪心)

热门文章

  1. nginx配置中proxy_redirect的作用(转)
  2. SQL 聚合函数一定要跟group by以及NULL的关系的案例精讲
  3. python2和python3的不同点_Django python2和python3的区别
  4. int main(argc,*argv)中argc,argv的相关说明
  5. JENKINS系统的安装部署
  6. vscode 配置php
  7. Go语言的多态(Polymorphism)
  8. 1024程序员节获奖通知
  9. 实战:将企业域名解析委派给企业DNS服务器
  10. 中断处理及系统调用的处理过程