您的位置:首页 > 其它

阻塞非阻塞、同步与异步,概念理解

2017-01-07 22:58 309 查看
 网络上一个人的视频教程讲NIO,听他讲到阻塞非阻塞、同步与异步的概念的时候,都听晕掉了。。。

从其它网络地方看下别人的解释比这个老师讲的是清楚的

下面是我的理解:

这四个概念是计算机里面的,所以不一定非得用生活中的场景进行类比,反而听的糊涂。

阻塞非阻塞:是对调用者的行为进行的描述,当对一次调用的描述是:当希望的结果没有准备好时,函数不返回,则这次调用对于调用者而言就是阻塞式调用,对调用者的影响是等待,等待希望的结果返回;当对一次调用的描述是:当希望的结果没有准备好时,函数也可以返回,则这次调用对于调用者而言就是非阻塞式调用,对调用者的影响是必须通过某种机制可以正确的收到希望的结果、回调函数或者轮询调用或者其它。。。

同步与异步:这两个概念更多的是对通信过程的描述,相互通信的两方,a和b:当a向b发出第一个信息,在a向b发送第二个消息之前必须收到b对第一个信息的回应,则这次通信是同步;相对应的,当a向b发出第一个信息,并且不必等待b的回应就可以发出第二个信息,则这次通信是异同的。

结合这两段可以得出:阻塞非阻塞是对调用者而言,同步与异步是对整个通信过程而言,阻塞的调用一定是同步的,因为第一次调用之后,必须收到返回结果才能发起第二次调用,非阻塞的调用可以是同步的与可以是异步的,因为它可以在没有收到第一次调用希望的结果之前发起第二次调用,同步的通信不能决定调用方是阻塞还是非阻塞,因为非阻塞的调用方式也能完成同步的通信模式,异步的通信方式一定不能使用阻塞的发送者,因为当其发完第一个信息,没有收到回复之前无法发送第二个信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: