[面试]同步和异步的区别

来源:互联网 发布:服务端数据库 编辑:程序博客网 时间:2024/06/10 18:03

同步和异步很简单,为方便理解,举个栗子:

同步:你叫我去吃饭,我听到了就立刻和你去吃饭,如果我没有听到,你就会一直叫我,直到我听见和你一起去吃饭;

异步:你叫我去吃饭,然后你就去吃饭了,而不管我是否和你一起去吃饭。而我得到消息后可能立即就走,也可能过段时间再走。

同步传输:是以数据块为基本单位进行传输,发出数据后,等待接收方响应以后才发下一个数据包。( 应用:银行转账功能j)

同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。

异步传输:是以字符为基本单位进行传输,不等待接收方响应,接着发下一个数据包的通讯方式。(应用:电脑同时打开QQ,酷狗,浏览器。。不知这例子恰不恰当) 

将用户请求放入消息队列,并反馈给用户,系统迁移程序已经启动,你可以关闭浏览器了。然后程序再慢慢地去写入数据库去。这就是异步。但是用户没有卡死的感觉,会告诉你,你的请求系统已经响应了。你可以关闭界面了。               

 

总结:
1,同步传输面向比特的传输,异步传输是面向字符的传输。   
2,同步传输的单位是帧,异步传输的单位是字符。   
3,同步传输是在数据中抽取同步信息,异步传输通过字符起止的开始和停止码抓住再同步的机会。   
4,异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序。   

5,异步传输相对于同步传输速率较低。(因为开始位和停止位的开销所占比例较大)

https://baike.baidu.com/item/%E5%90%8C%E6%AD%A5%E4%BC%A0%E8%BE%93#3

6、同步用户体验差,当多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低;异步用户体验好,当访问资源时在空闲等待时同时访问其他资源,实现多线程机制(效率


原创粉丝点击