大家一直觉得回调函数很抽象,最主要是大家都被“回调”这个词迷惑了,“回调”这个词在js中体现得比较准确,因为js中回调函数还是由原来的线程调用,可以看下js的执行原理,用在java和C++上就似乎不太符合回调的原意了,回调函数不一定是原来线程执行。
对于C++和java来说其实最简单理解就是在方法中调用通过参数传进来的其他方法,在C++中可以通过参数函数指针实现,在java中可以通过接口实现。这样的效果就是调用同一个方法,可以通过传进来的不同参数实现不同的逻辑。注意与调用者之间是否是多线程无关。只是在多线程中回调体现得相对符合原意。
上面观点为一家之言,欢迎留言批评指正