同步异步是否阻塞

自己的一点关于同步异步与阻塞非阻塞的理解
同步异步是否阻塞

同步异步关注于,调用是否立刻会有一个返回。而阻塞与非阻塞关注于调用发起后,原程序是否挂起。

一般而言,同步阻塞和异步非阻塞运用的多一些。

同步阻塞,p1先运行,然后调用p2,p2运行完返回,一般的函数调用都是这个过程。
同步非阻塞,p1先运行,然后调用p2,然是调用的同时,自身不挂起,而是不断的隔一定时间,对p2发起询问,你是否运行完,也就是这里的红色箭头。
异步阻塞,p1先运行,然后调用p2,p2立刻返回,p2立刻返回一个值,但是p2继续运行,p1自身挂起,等待p2运行完成后的消息通知,也就是蓝色剪头。
异步非阻塞,p1先运行,然后调用p2,p2立刻返回一个值,但是p1,p2并行运行,其中p1接着干自己的事情,等待p2运行完成后的消息通知。

可以发现,非阻塞引入了并行的特性
异步阻塞,增加了开销,但并没有引入新功能,还不如同步阻塞。
同步非阻塞,增加了开销,但并没有引入新功能,还不如异步非阻塞。

因此阻塞一般也就是同步的,非阻塞一般也就是异步的。