“同步”就好比:你去外地上学(人生地不熟,突然生活费不够了;此时你决定打电话回家,知家里转生活镄过来,可是当你拨出电话时,对方一处于待接听状态(即:打不通,联系不上),为了拿到生活费, 你就不停的oncall、 等待,最终可能不能及时要到生活费,导致你今天要做的事都没有完成,而白白花掉了时间。打不通电话,阻塞了
“异步”就是:在你打完电话发现没人接听时,猜想:对方可能在忙,暂时无法接听电话,所以你发了一条短信(或者语音留言, 或是其他的方式)通知对方后便忙其他要紧的事了;这时你就不需要持续不断的拨打电话,还可以做其他事情;待定时间后, 对方看到你的留言便回复响应你,当然对方可能转钱也可能不转钱。但是整个一天下来,你还做了很多事情(非阻塞)。或者说你找室友临时借 了一笔钱,开始happy的上学时光了。
阻塞和非阻塞强调的是程序在等待调用结果(消息,返回值)时的状态
同步和异步强调的是消息通信机制
鉴于以上,大部分情况,我们需要找家里要钱的时候(请求服务器)用异步,特别着急找同学借钱(页面处理状态)用同步