阻塞与非阻塞最大的区别是调用方一直等待还是先去处理别的事情。
同步与异步最大的区别就是被调用方返回结果之前的这段时间内,调用方是否一直等待。
那么阻塞和同步,非阻塞和异步是一回事儿嘛 ?
答案是当然不是。
重要的一点是针对的对象不一样,阻塞/非阻塞说的是调用者,同步/异步说的是被调用者。
举例子:
A调用B ,B的处理是同步的,在处理完之前他不会通知A ,只有处理完成后才会通知A 。
A调用B , B的处理是异步的,B在接到请求后先告诉A我已经接到请求了,然后异步去处理,处理完之后通过回调等方式通知A。
A调用B ,A一直等着B的返回,别的什么事都不做,这叫阻塞。
A调用B ,A不用一直等着B的返回,先去忙别的事情,得到返回后结束,这叫非阻塞。