博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
同步与异步、阻塞与非阻塞
阅读量:6210 次
发布时间:2019-06-21

本文共 751 字,大约阅读时间需要 2 分钟。

这是两对概念,用在不同的语境会有一些不同的含义,不能一概而论。

整体来说,同步就是两种东西通过一种机制实现步调一致,异步是两种东西不必步调一致。

 

一、同步调用与异步调用:

在用在调用场景中,无非是对调用结果的不同处理。

我理解同步调用就是调用一但返回,就能知道结果,而异步是返回时不一定知道结果,还得通过其他机制来获知结果,如:

a.   状态

b.   通知
c.   回调函数

这里的同步调用不一定会阻塞,例如立即返回失败的结果。

而异步调用立即返回时,你还拿不到结果的。

 

二、同步线程与异步线程:

同步线程:即两个线程步调要一致,要相互协商。两个线程的运行进度各不相同,怎么才能步调一致呢?我们直观的理解就是,快的等慢的呗!快的阻塞一下等到慢的步调一致即可。

异步线程:步调不用一致,各自按各自的步调运行,不受另一个线程的影响。

同步是指两个线程的运行是相关的,其中一个线程可能要阻塞等待另外一个线程的运行;

异步的意思是两个线程毫无相关,自己运行自己的。

 

 三、同步通信与异步通信:

这里的同步和异步是指:发送方和接收方是否协调步调一致!

 

同步通信是指:发送方和接收方通过一定机制,实现收发步调协调。如:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式

 

异步通信是指:发送方的发送不管接收方的接收状态,如:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

 

 

阻塞和非阻塞就比较容易理解了,没有上面那么多场景,阻塞就是这个事情阻到这儿了,不能继续往下干事了,非阻塞就是这个事情不会阻碍你继续干后面的事情。

 

阻塞可以是实现同步的一种手段!例如两个东西需要同步,一旦出现不同步情况,我就阻塞快的一方,使双方达到同步。

 

同步是两个对象之间的关系,而阻塞是一个对象的状态。

参考博文:

 

转载地址:http://mxkja.baihongyu.com/

你可能感兴趣的文章
H3C许立宪:金融跨界成必然趋势
查看>>
Arkeia发布业界首个用于备份的虚拟设备
查看>>
机器学习的入门“秘籍”
查看>>
Struts2漏洞爆发 知道创宇云安全已拦截近万攻击样本
查看>>
关于5G的10个问答 让我们告别盲人摸象
查看>>
中兴通讯徐明:中国智慧城市应以人为核心让信息惠民
查看>>
用互联网铺开传统行业转型之路
查看>>
还坐在办公室?软件定义工作空间改变办公模式
查看>>
黑客很伤心,美国NSA泄露的黑客工具“无人问津”
查看>>
git笔记
查看>>
深度学习那么火,它究竟能做些什么?
查看>>
HTML5 – 本地存储
查看>>
暖通空调知识:机房制冷系统排污和检漏安全操作规范
查看>>
Python在实时嵌入式系统开发中扮演的五个主要角色
查看>>
在巴黎恐袭中,科技公司说它们更大的价值在于拯救生命
查看>>
亚洲企业破坏式创新 颠覆物联网市场
查看>>
大数据的深度和广度
查看>>
Hadoop 集群搭建
查看>>
数据中心网络流量增长的10个关键数字
查看>>
你可以在Linux下使用苹果编程语言Swift
查看>>