回调函数

来源:4-2 实现了 Serializable 接口却报错怎么办?

奶茶三兄弟d

2020-09-29

老师,对于回调函数一直理解的都比较模糊,老师能详细讲解下嘛,

比如StringRedisTemplate 执行 SessionCallback这个回调函数,,最终是如何回调的

写回答

1回答

张勤一

2020-09-29

同学你好:

    正常一个系统肯定存在模块之间的调用,一般调用分以下几种:

    (1)同步调用,类 A 的方法 a() 调用类 B 的方法b (),然后一直等待 b() 方法执行结束,a() 方法才能继续往下执行;

    (2)异步调用,类 A 的方法 a() 调用类 B 的方法 b(),然后 a() 方法自己继续往下执行,不用去管 b() 方法是否执行结束;

    (3)回调,回调就是类 A 的方法 a() 调用类 B 的方法 b(),然后类 B 的 b() 方法执行结束后也能调用类 A 的a() 方法,简单讲即双向调用,当然,同样回调也会分同步调用、异步调用

    回调函数其实也挺好理解的,简单理解就是回调函数就是由调用方自己具体实现,然后提供给被调用方调用的一个特殊函数。Java 多线程中 的Future、Callable、FutureTask 其实就是这种回调机制。


    回调函数这种是偏向于概念上的东西,不好理解是很正常的,不过,你不需要过分的纠结于这些概念,因为慢慢的你会发现,这样的概念有很多。理解可以这样使用就是足够的,也是第一布应该去做的。尝试着多写一些类似的代码,你就会慢慢懂了!


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!


2
1
奶茶三兄弟d
非常感谢!
2020-09-29
共1条回复

Java实操避坑指南 SpringBoot/MySQL/Redis错误详解

掌握业务开发中各种类型的坑,,Java web开发领域通用

466 学习 · 204 问题

查看课程