同步异步,阻塞非阻塞概念

版权声明:欢迎转载,共同进步,麻烦注明转载出处 https://blog.csdn.net/Hanxiaofan95/article/details/83383056

对于网络编程,经常会遇到同步阻塞同步非阻塞异步阻塞异步非阻塞这样的字眼,对于阻塞这个词,很好理解,从字面的意思上就可以看出阻塞的含义,但是,对于同步,非同步,如果单独理解,也很好理解,就是时间上的关系。
举个例子就是,我去炖了一壶水,我在旁边等着,水一开,我立马就听到了水开了的声音了,这就是同步的含义,就是说一个事件完成的时候,与之伴随的另一个事件会立马收到这个事件完成的消息,并执行相关的一些操作,比如就是我把水灌进暖水壶里。对于不同步而言,就是我没在水壶旁边,水开了,但是我没有立马听到,后面突然有人过来告诉我水开了,然后我才知道水开了,这个就是不同步。对于不同步而言,当一个事件完成的时候,与之伴随的另一个事件并不会第一时间就收到这个事件完成的消息,而是会有相关的消息机制去通知它,然后才会去执行与之相关的一些操作。
网上还有些博客说的也很好,就是说,对于同步而言,就是调用者会主动不断的循环检测被调用者是否完成了某一个事情,比如说我会不断地看水壶中的水是否开了,这里我是调用者,水壶是被调用者,炖水是水壶执行的动作,而对于非同步来说呢,调用者并不主动关心被调用者是否完成某一个事情,而是在等待着相关的通知来告诉它,就是水壶开始炖水的时候,我去看电影了,我不去主动看水壶的水有没有开,而是等有人告诉我。有专门的系统机制去监听这个事件的完成情况。
说白了,同步非同步就是指的是对于被调用者事件完成情况这个消息的监听机制的不同。一个是主动监听,一个是被动监听。
如有错误,请多担待,后面还会修改补充。

猜你喜欢

转载自blog.csdn.net/Hanxiaofan95/article/details/83383056