回调(callback)理解

回调(callback)理解

回调(callback)理解

软件模块之间总是存在一定的接口,从调用方式上,可以把他们分为三类:同步调用、异步调用和回调

1.同步调用

同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等待b()方法执行完毕,a()方法再继续往下走。这种调用方式适用于方法b()执行时间不长的情况,因为b()方法执行时间一长或者直接阻塞的话,a()方法的余下代码是无法执行下去的,这样会造成整个流程的阻塞。

2.异步调用

是一种类似消息或事件的机制,是为了解决同步调用可能出现阻塞,导致整个流程卡住而产生的一种调用方式。类A的方法a()通过新起线程的方式调用类B的方法b(),代码接着直接往下执行,这样无论方法b()执行时间多久,都不会阻塞方法a()的执行。但是这种方式,由于方法a()不等待方法b()执行完成,在方法a()需要方法b()执行结果的情况下(视具体业务而定,有些业务比如启动异步线程发个微信通知、刷新一个缓存这种就没有必要),必须通过一定的方法对方法b()的执行结果进行监听。在Java中,可以使用Future+Callable的方式做到这一点。

3.回调

类A的a()方法调用了类B的b()方法

类B的b方法执行完毕主动调用类A的callback()方法。比如支付系统中的支付或退款,调用支付宝或微信等支付或退款接口。处理结束后,支付宝或微信再将结果通过回调方法通知给调用方。

这样一种调用方式组成了上图,也就是一种双向的调用方式

回调函数是一个函数或过程,不过它是一个由调用方自己实现,供被调用方使用的特殊函数。

在面向对象的语言中,回调则是通过接口或抽象类来实现的,我们把实现这种接口的类称为回调类,回调类的对象称为回调对象。

相关文章

美的i青春Ⅱ1.5匹一级能效变频冷暖空调 KFR-35GW/N8XHB1
神器365软件下载

美的i青春Ⅱ1.5匹一级能效变频冷暖空调 KFR-35GW/N8XHB1

⌛ 07-20 👁️‍🗨️ 4699
什么软件做策划案,策划案制作软件推荐
365bet官网网址多少

什么软件做策划案,策划案制作软件推荐

⌛ 07-10 👁️‍🗨️ 5817
qq扫码登录失败是为什么
365bet官网网址多少

qq扫码登录失败是为什么

⌛ 07-14 👁️‍🗨️ 5312
最大恒星:揭秘比太阳大数万倍的宇宙巨人
365bet网址多少

最大恒星:揭秘比太阳大数万倍的宇宙巨人

⌛ 07-17 👁️‍🗨️ 1662
海贼王海军大将(上将)有哪些
365bet网址多少

海贼王海军大将(上将)有哪些

⌛ 08-19 👁️‍🗨️ 5425
2025年固态硬盘十大品牌榜中榜
365bet网址多少

2025年固态硬盘十大品牌榜中榜

⌛ 07-08 👁️‍🗨️ 5412