paip.函数方法回调机制跟java php python c++的实现
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
5.73 方法函数回调
5.73.1 回调机制(同步调用、回调和异步调用。):
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。
同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;
回 调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;
异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
回调和异步调用的关系非常紧密:使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。
========================================================
5.73.2 C/C++中,回调函数
在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址
5.73.3 java中的方法回调 Callable接口
当通常大家说的回调函数一般就是按照别人的定好的接口规范写的,等待别人调用的函数,在C语言中,回调函数通常通过函数指针来传递;在Java中,通常就是编写另外一个类或类库的人规定一个接口,然后你来实现这个接口,然后把这个实现类的一个对象作为参数传给别人的程序,别人的程序必要时就会通过那个接口来调用你编写的函数。
在java中理解“回调函数”
调用-----main(_)函数
import static m.global.*;
callbackTest(new Icall() {
public <T> Object callbackMethod(T obj) {
System.out.println(obj);
return null;
}
});
/
回调发生地详细global.java
public class global {
public interface Icall {
public <T> Object callbackMethod(T obj);
}
public static void callbackTest(Icall t) {
t.callbackMethod("halo o129");
}
}
5.73.4 Php , python方法回调
Php以及 python能直接把函数指针传入方法参数,以调用,也可以。使用了PHP内置的函数call_user_func_array