cpu 被挂起和阻塞_同步异步阻塞非阻塞并发并行讲解
通过一个很形象的例子来说明同步异步阻塞非阻塞。
场景: 小明使用 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 被挂起和阻塞_同步异步阻塞非阻塞并发并行讲解相关推荐
- 异步通知是什么意思_一次相亲经历,我彻底搞懂了阻塞非阻塞、同步异步
看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门口,我的大姨 ...
- 异步和同步区别是什么_一次相亲经历,我彻底搞懂了什么叫阻塞非阻塞,同步异步...
"看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门 ...
- 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?
本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...
- 深入理解并发/并行,阻塞/非阻塞,同步/异步
北京 | 深度学习与人工智能 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共3359个字,11张图,预计阅读时间:9分钟. 1.阻塞,非阻塞 首先,阻塞这个词来自操作系统的线程 ...
- 浅谈阻塞/非阻塞、同步/异步——从linux read()系统调用出发
浅谈阻塞/非阻塞.同步/异步 –从linux IO系统调用出发 阻塞与非阻塞主要从进程/线程的角度出发: 阻塞(blocking):教科书年年考的概念--调用方(主线程)发起调用之后挂起直到被调用方法 ...
- 深入理解非阻塞同步IO和非阻塞异步IO
这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...
- servlet的异步和非阻塞原理
之前研究了下servlet的异步和非阻塞原理,看到一篇文章,下面有两个问题,顺便解答了下 servlet3异步原理与实践 Danniel 3楼 2019.05.18 21:31 请问,AsyncLon ...
- 理解阻塞非阻塞与同步异步
作者:严肃 链接:https://www.zhihu.com/question/19732473/answer/20851256 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 阻塞非阻塞和同步异步
同步:用户进程触发了IO操作,等待并轮询的查看IO操作是否就绪. 异步:用户进程触发了IO操作之后做自己的事情,而IO操作完成之后会得到IO的通知 阻塞IO 和 非阻塞IO 这两个概念是程序级别的.主 ...
最新文章
- 如何解决资料下载下来为index.html和PHP文件的问题?
- PHP里switch用法举例,PHP Switch语句的功能实例
- 为什么科研总会走弯路【转】
- 使用SpringBoot框架和SpringSecurity框架整合出现because its MIME type ('text/html') is not executable
- python实现列表去重_python实现七种列表去重方法
- HighNewTech:横向、纵向动图查看《Why资本寒冬》——根据中国四大行每年(2004年~2018年)贷款主要流向来看当下的资本寒冬
- 【网络安全】XSS盲打实战案例:某网页漫画
- JSP基础(4)-JavaBean
- 蓝桥杯 - 连号区间数(暴力)
- aes加密算法_令你的文件安全有了新方法AES-256-GCM加密网站免费用
- @WebFilter()配置servlet访问出现404的原因
- Java 就业培训教程 再读笔记
- java编程练习题四
- Kali Linux 2022下载
- 大四学年个人自我鉴定
- 预警“立功”|用小米手机真的能救命
- HT366 具有防破音功能的2×20W立体声D类音频功放IC
- RK3288——LCD裸机
- java web短信验证码_在Web项目中手机短信验证码实现的全过程记录
- 机器人动力学 拉格朗日乘子法求解动力学方程
热门文章
- qvalue: Check that you have valid p-values or use a different range of lambda
- spring boot(一):Hello World
- POJ 2888 Magic Bracelet ——Burnside引理
- .net remoting的事务传播以及wcf分布式事务
- python中不可以用来表示字符串_在Python中,不可以用来表示字符串的符号是____________。...
- 什么是php 的精华,在用PHP开发中的精华和技巧总结
- cass参考手册_什么?你还不会测绘?南方CASS教程+视频讲解+插件汇总,快来学!...
- git 代码回滚_谁说用 Git 一定要用命令行?试试 SourceTree 吧
- pannel添加的子窗体很大_在WordPress中添加简书风格的连载目录和文章导航
- mongodb修改数据语句_MongoDB 常用语句