回调(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()方法。比如支付系统中的支付或退款,调用支付宝或微信等支付或退款接口。处理结束后,支付宝或微信再将结果通过回调方法通知给调用方。
这样一种调用方式组成了上图,也就是一种双向的调用方式
回调函数是一个函数或过程,不过它是一个由调用方自己实现,供被调用方使用的特殊函数。
在面向对象的语言中,回调则是通过接口或抽象类来实现的,我们把实现这种接口的类称为回调类,回调类的对象称为回调对象。
热门推荐
离婚后,抚养孩子的人起诉变更抚养权,法院会同意吗?
折流板除雾器工作原理
《鬼谷子》智慧:权谋策略与辩论技巧的现代解读
A股迎此轮上涨最大调整 暴跌后能否抄底?
梦见被辞退预示什么
股票跌幅的分析方法有哪些?这些方法有哪些实际应用?
上海人可以刷医保买华为手表?多店已断货,很多人排队等!国家医保局回应,律师提醒
大降温+暴雨+冰雹!东莞气温降至......气温多变,如何科学穿搭防感冒?
TrueCrypt解密实战与网络安全学习指南
氯化铵的功效及作用是什么
又能省一笔钱,取得这些职业资格证能享个税扣除!
制动检测的重要性:如何避免行车中的制动失灵
汽车如何避免刹车失灵的情况?一旦出现刹车失灵应如何应对?
如何为软路由配置多WAN口
无痛胃肠镜是什么
捉摸不透的腹痛腹泻便秘?警惕肠易激综合征!
三禁六计四避险……电动自行车安全使用指南来了!请查收
农村屋顶光伏发电防坑指南,如何机智避开“坑人”套路?
小型光伏设备购买指南:供应商选择与市场分布全解析
麦冬泡水隔夜还能喝吗?专家建议:现泡现喝更安全
抢救脑雾健忘症! 10大超级健脑好食物,帮你保养大脑
大盘分析中的技术分析方法有哪些?
宝宝为什么不睡整觉、老是醒?儿科医生给你支招让宝宝睡更香
即热型热水器的安全问题(了解即热型热水器的工作原理和安全隐患)
糖尿病人可以吃蓝莓吗?控糖饮食中蓝莓竟能带来这6大好处
丝瓜皮的功效与作用 丝瓜皮的药用价值
梦见重病的人:从多个角度解读这一梦境
加勒比女海盗,从历史到银幕的传奇
右腿发麻是什么原因
腰部疼痛时平躺右腿出现麻木是何原因