一、根本在于他们描述的对象不一样
同步、异步是相对于发起方
阻塞、非阻塞是相对于处理方
二、A请求B
同步:A一直等待B的返回
异步:A发完请求后去做别的事情
阻塞:B收到A请求后,等有结果后再返回
非阻塞:B收到A请求后,立即返回
三、AB处理方式组合
同步阻塞:A求B办事,A说我等您,B得处理(阻塞)一会再给返回结果
同步非阻塞:A和B合作,A说我等你结果哈,B马上响应(可能处理好,或没处理好),
A需要不断轮询B的处理结果
异步阻塞:A交代B办事,A说这事你去办,办完通知我,我去干别的事情了,B处理完后汇报给A
异步非阻塞:A交代B办事,A说这事你去办,办完通知我,我去干别的事情了,B处理完后汇报给A
当A是异步方式时,B阻塞非阻塞方式,A根本就不在乎,都需要B去汇报给A,要不然事情就无法进展下去了
以上是我的一些粗浅理解,如有问题,希望路过的大佬指正
通过代码可以实现同步转异步(注册回调),异步转同步(wait)