通过一个很形象的例子来说明同步异步阻塞非阻塞。

场景: 小明使用 chrome 下载一个软件。

1. 同步阻塞

小明使用 没有提醒功能的chrome 下载一个软件。小明 一直坐在电脑面前什么事也不做, 等待软件下载完成。

阻塞:小明(调用者) 等待电脑下载完成,什么事也不做(当前进程挂起) 。

同步: 没有提醒功能的 chrome(被调用者)

总结: 调用结果返回前,进程挂起,等待调用结果返回。效率低

2.异步阻塞

小明使用 有提醒功能的chrome(下载完成会 '叮'一声提醒用户)

下载软件。小明一直坐在电脑前什么事也不做,等待软件下载完成。

阻塞:小明(调用者) 等待电脑下载完成,什么事也不做(当前进程挂起)。

异步:有提醒功能的 chrome,下载完成的时候会提醒小明。(调用结果返回时会通知进程)

总结:虽然调用结果返回会通知进程,但是调用结果返回前,当前进程挂起。所以同样效率低

这里我们可以看出,同步和异步是一种 消息通知机制, 是相对于被调用者而言的。

同步:

A调用B,B处理直到获得结果,才返回给A。

需要调用者一直等待和确认调用结果是否返回, 然后继续往下执行。

异步:

A调用B,B直接返回。无需等待结果,B通过状态,通知等来通知A或回调函数来处理。

调用结果返回时, 会以消息或回调的方式通知调用者。

3.同步非阻塞

小明使用 没有提醒功能的chrome

下载软件,然后去做其他事情,时不时的过来确认下软件是否下载完成(轮询?)。小明做其他事情的效率不高。

非阻塞: 小明 (调用者) 执行需要等待的任务后,去做其他事情。

同步:没有提醒功能的 chrome(被调用者)需要 小明(调用者) 确认是否完成任务。

总结:调用结果返回前不会阻塞当前进程,当前进程可以去做其他事情,但是需要通过轮询来确认调用结果是否返回,耗cpu性能,效率会比 1,2

高点。但是还不够高

4.异步非阻塞

小明使用 有提醒功能的chrome 下载软件, 然后去做其他事,当软件下载完成的时候会通知小明。

非阻塞: 小明 (调用者) 执行需要等待的任务后,去做其他事情。

异步: 有通知功能的 chrome (被调用者) 下载完成后会通知 小明(调用者)。

总结:调用结果返回前当前进程可以继续做其他事情,函数调用完成后会以回调或者消息的方式通知进程。效率最高。

这里我们可以看出 阻塞非阻塞 描述的是进程等待调用结果返回前的状态, 是相对于调用者而言的。

阻塞:

A调用B,A被挂起直到B返回结果给A,A继续执行。

调用结果返回前,当前进程挂起不能够处理其他任务,一直等待调用结果返回。

非阻塞:

A调用B,A不会被挂起,A可以执行其他操作。

调用结果返回前,当前进程不挂起, 可以去处理其他任务。

所以我们要区分开同步异步阻塞非阻塞,同步异步说的是被调用者结果返回时通知进程的一种通知机制,阻塞非阻塞说的是调用结果返回前进程的状态,是挂起还是继续处理其他任务。

5、并发和并行

二者的区分度非常的高,就在于四个字:是否同时。

并发:当有多个线程在操作时,如果系统只有一个CPU,操作系统只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的快速的切换不同的线程代码运行。

并行:当系统有多个CPU时,可以存在当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行

cpu 被挂起和阻塞_同步异步阻塞非阻塞并发并行讲解相关推荐

  1. 异步通知是什么意思_一次相亲经历,我彻底搞懂了阻塞非阻塞、同步异步

    看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门口,我的大姨 ...

  2. 异步和同步区别是什么_一次相亲经历,我彻底搞懂了什么叫阻塞非阻塞,同步异步...

    "看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门 ...

  3. 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

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

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

  5. 浅谈阻塞/非阻塞、同步/异步——从linux read()系统调用出发

    浅谈阻塞/非阻塞.同步/异步 –从linux IO系统调用出发 阻塞与非阻塞主要从进程/线程的角度出发: 阻塞(blocking):教科书年年考的概念--调用方(主线程)发起调用之后挂起直到被调用方法 ...

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

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

  7. servlet的异步和非阻塞原理

    之前研究了下servlet的异步和非阻塞原理,看到一篇文章,下面有两个问题,顺便解答了下 servlet3异步原理与实践 Danniel 3楼 2019.05.18 21:31 请问,AsyncLon ...

  8. 理解阻塞非阻塞与同步异步

    作者:严肃 链接:https://www.zhihu.com/question/19732473/answer/20851256 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  9. 阻塞非阻塞和同步异步

    同步:用户进程触发了IO操作,等待并轮询的查看IO操作是否就绪. 异步:用户进程触发了IO操作之后做自己的事情,而IO操作完成之后会得到IO的通知 阻塞IO 和 非阻塞IO 这两个概念是程序级别的.主 ...

最新文章

  1. 如何解决资料下载下来为index.html和PHP文件的问题?
  2. PHP里switch用法举例,PHP Switch语句的功能实例
  3. 为什么科研总会走弯路【转】
  4. 使用SpringBoot框架和SpringSecurity框架整合出现because its MIME type ('text/html') is not executable
  5. python实现列表去重_python实现七种列表去重方法
  6. HighNewTech:横向、纵向动图查看《Why资本寒冬》——根据中国四大行每年(2004年~2018年)贷款主要流向来看当下的资本寒冬
  7. 【网络安全】XSS盲打实战案例:某网页漫画
  8. JSP基础(4)-JavaBean
  9. 蓝桥杯 - 连号区间数(暴力)
  10. aes加密算法_令你的文件安全有了新方法AES-256-GCM加密网站免费用
  11. @WebFilter()配置servlet访问出现404的原因
  12. Java 就业培训教程 再读笔记
  13. java编程练习题四
  14. Kali Linux 2022下载
  15. 大四学年个人自我鉴定
  16. 预警“立功”|用小米手机真的能救命
  17. HT366 具有防破音功能的2×20W立体声D类音频功放IC
  18. RK3288——LCD裸机
  19. java web短信验证码_在Web项目中手机短信验证码实现的全过程记录
  20. 机器人动力学 拉格朗日乘子法求解动力学方程

热门文章

  1. qvalue: Check that you have valid p-values or use a different range of lambda
  2. spring boot(一):Hello World
  3. POJ 2888 Magic Bracelet ——Burnside引理
  4. .net remoting的事务传播以及wcf分布式事务
  5. python中不可以用来表示字符串_在Python中,不可以用来表示字符串的符号是____________。...
  6. 什么是php 的精华,在用PHP开发中的精华和技巧总结
  7. cass参考手册_什么?你还不会测绘?南方CASS教程+视频讲解+插件汇总,快来学!...
  8. git 代码回滚_谁说用 Git 一定要用命令行?试试 SourceTree 吧
  9. pannel添加的子窗体很大_在WordPress中添加简书风格的连载目录和文章导航
  10. mongodb修改数据语句_MongoDB 常用语句