同步&异步+阻塞&非阻塞(理解)
0 - 同步&异步
同步和异步关注的是消息通信机制。
0.1 - 同步
由“调用者”主动等待这个“调用”结果。即是,发出一个“调用”时,在没有得到结果之前,该“调用”不返回,一旦调用返回,则得到返回值。
0.2 - 异步
“调用者”不主动等待“调用”结果,而是“调用”结束之后主动通知“调用者”(通过状态、通知或者回调函数等各种形式)。
0.3 - 同步&异步-举例
例如,我打电话去询问教务处老师有没有开设”高性能计算导论“这门课。如果是同步机制,则老师会说,”稍等一下,我查一下“,然后我就在接通电话的状态下一直等着老师的回复;而如果是异步机制,则我就会挂断电话,等老师查询之后直接通过”回电“的方式通知我。
1 - 阻塞&非阻塞
阻塞和非阻塞关注的是程序在等待调用结果时的状态。
1.1 - 阻塞
阻塞是指程序在等待结果时该线程会挂起,即是说做不了其它事。
1.2 - 非阻塞
非阻塞是指程序在等待结果时不阻塞当前线程,可以做其它的事。
1.3 - 阻塞&非阻塞-举例
还是上面的例子,我还是打电话询问教务处老师有没有开设”高性能计算导论“这门课。如果是同步阻塞机制,则老师说,”稍等一下,我查一下“之后,我会一直守在通话旁等待老师回复而不做任何其它事情;如果是同步非阻塞机制,在老师说完之后我会同步做其它的一些小事情,比如用电脑刷刷微博等等,但还是会时不时注意手机保持的通话中老师是否在回复我。异步阻塞和异步非阻塞与相应的同步阻塞和非阻塞对应,但是我会挂断电话,以老师“回电”方式告知我。
2 - 参考资料
https://www.zhihu.com/question/19732473
同步&异步+阻塞&非阻塞(理解)的更多相关文章
- JAVA 中BIO,NIO,AIO的理解以及 同步 异步 阻塞 非阻塞
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解.具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步 ...
- 深入理解非阻塞同步IO和非阻塞异步IO
这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...
- 理解同步,异步,阻塞,非阻塞,多路复用,事件驱动IO
以下是IO的一个基本过程 先理解一下用户空间和内核空间,系统为了保护内核数据,会将寻址空间分为用户空间和内核空间,32位机器为例,高1G字节作为内核空间,低3G字节作为用户空间.当用户程序读取数据的时 ...
- 谈谈对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)
一.关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题. 1. 为什么redis能以单工作线 ...
- I/O阻塞非阻塞,同步异步
http://www.cnblogs.com/luotianshuai/p/5098408.html "阻塞"与"非阻塞"与"同步"与&qu ...
- 【转载】高性能IO设计 & Java NIO & 同步/异步 阻塞/非阻塞 Reactor/Proactor
开始准备看Java NIO的,这篇文章:http://xly1981.iteye.com/blog/1735862 里面提到了这篇文章 http://xmuzyq.iteye.com/blog/783 ...
- 高性能IO设计模式之阻塞/非阻塞,同步/异步解析
提到高性能,我想大家都喜欢这个,今天我们就主要来弄明白在高性能的I/O设计中的几个关键概念,做任何事最重要的第一步就是要把概念弄的清晰无误不是么?在这里就是:阻塞,非阻塞,同步,异步. OK, 现在来 ...
- Python番外之 阻塞非阻塞,同步与异步,i/o模型
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就 ...
- Netty基础系列(2) --彻底理解阻塞非阻塞与同步异步的区别
引言 在进行I/O学习的时候,阻塞和非阻塞,同步和异步这几个概念常常被提及,但是很多人对这几个概念一直很模糊.要想学好Netty,这几个概念必须要掌握清楚. 同步和异步 同步与异步的区别在于,异步基于 ...
随机推荐
- phpstudy vhosts.conf 文件配置 记录下!
<VirtualHost _default_:80>DocumentRoot "D:\phpStudy\WWW" <Directory "D:\phpS ...
- pageObject+selenium
新发现的设计模式,很好用. 参考:https://www.cnblogs.com/xiaofeifei-wang/p/6733753.html
- Tomcat 一般异常处理方式
1.启动时出现: Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/ ...
- python测试断言
这几天看了一下python的测试,基于函数方法和基于类的测试,主要使用的模块是unittest模块,为特定的方法和类,建立测试模块,测试函数功能是否满足预期.下面是模仿书里面的一个例子. City.p ...
- (数论 最大公约数 最小公倍数) codeVs 1012 最大公约数和最小公倍数问题
题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整 ...
- 加了synchronized后还是不安全的问题
1.查看是不是多线程 2.用的是不是同一个锁
- css换行
1. word-break:break-all;只对英文起作用,以字母作为换行依据 2. word-wrap:break-word; 只对英文起作用,以单词作为换行依据 3. white-space: ...
- 在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别
在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别 linux 命令中tar后跟的zxvf是什么意思:.tar.gz是一个压缩包 .tar只是打包而没有压缩 z:表示 tar 包是被 ...
- beego 实现API自动化文档
安装beego和bee工具 1.beego安装 go get -u github.com/astaxie/beego 2.安装bee工具 go get -u github.com/beego/bee ...
- go config
安装导入 go get github.com/astaxie/beego/config import "github.com/astaxie/beego/config" 使用 配置 ...