回调(callback)理解
创作时间:
作者:
@小白创作中心
回调(callback)理解
引用
51CTO
1.
https://blog.51cto.com/oktokeep/13691421
回调(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()方法。比如支付系统中的支付或退款,调用支付宝或微信等支付或退款接口。处理结束后,支付宝或微信再将结果通过回调方法通知给调用方。
这样一种调用方式组成了上图,也就是一种双向的调用方式
回调函数是一个函数或过程,不过它是一个由调用方自己实现,供被调用方使用的特殊函数。
在面向对象的语言中,回调则是通过接口或抽象类来实现的,我们把实现这种接口的类称为回调类,回调类的对象称为回调对象。
热门推荐
MQTT 协议原理与应用详解
电饭锅内胆材质选购指南:四种主流材质优缺点全解析
新材料40+乒乓球有缝与无缝有什么区别?业余爱好者应该如何选择
遇到恶犬攻击时如何进行正当防卫?
顺德六大创新举措护航无偿献血事业
男子累计献血9600毫升,因朋友母亲急用血,求助后遭血站员工移出群聊
深度解析:数列放缩法例题的解法与思维逻辑
安卓虚拟机如何用旧系统
胸腔引流,量多少算正常?
有人说:歼-20的涡扇-15发动机落后美国30年,这是真的吗?
蒙古西征匈牙利:曾被蒙古西征军重创的匈牙利,为何能反败为胜?
蒙古西征匈牙利:曾被蒙古西征军重创的匈牙利,为何能反败为胜?
【STM32选型攻略】主流型号内核深度解析与差异对比
看清一个人最容易的方式,谈钱
蜂蜜变质是什么样子?一文详解蜂蜜变质的特征与判断方法
揭秘蜂蜜表面那层小泡沫的秘密
打卡“中国新地标” “东数西算”夯实中国数字经济发展“绿色底座”
颈椎病引起耳鸣怎么治疗
近10年我国煤与瓦斯突出事故统计规律与动力效应特征分析
炒土豆是先焯水还是直接炒?学会这3种做法,端上桌家人抢着吃
没有指纹的人犯法:我国法律对于指纹识别的重视程度
宋江招安背后的原因与意义
晁盖与宋江:领导力的较量
美国特有汽车文化:会跳舞的汽车
西安至华山最佳路线指南:交通方式与出行攻略
鹰嘴豆的功效与作用及禁忌 哪些人不适宜吃鹰嘴豆
云南师范大学:从西南联大走出的教育重镇
头痛、脖子僵,绝大多数需要放松这块肌肉
SPC地板安装好后可以马上入住吗?
SPC地板安装全攻略:从准备到验收的详细指南