同步调用、回调和异步调用的区别

同步调用是以一种阻塞式调用
比如说:古代的长城的烽火传递信息,现在我们假设每个烽火只能看到相邻的烽火状态,每个烽火的状态只有亮和暗。
现在有A、B、C、D四个烽火,A首先点亮,B看到A的烽火亮了,立马去点火,花了2秒点亮。但是这时候负责C烽火的人在睡觉,可是这时候所有人都在等待C点亮,终于C睡了2个小
时候看到了B点亮,然后去点亮。D由于长期没有点亮,导致烽火出现问题,因此整个过程都在等待D的完成。
伪代码:
  1. if A complete  
  2. do B  
  3. else   
  4. wait A  
  5.   
  6. if B complete  
  7. do C  
  8. else  
  9. wait B  
  10.   
  11. if C complete  
  12. do D   
  13. else  
  14. wait C  
这种就是典型的阻塞机制,无论如何我们只能等待上一个任务的完成,如果没有完成我们只能继续等待,这样造成的问题是,我们一直在浪费系统资源。

回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口
同样上面的例子:
现在我们还是A、B、C、D,但是A中有一个去B的信鸽(b),同样B中有(c),C中有(d)。现在我A收到消息后,我立马告诉信鸽b,然后自己去点亮烽火,信鸽会把信息带给B,B收 到信鸽信息后立马点亮,然后放信鸽去C࿰
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值