什么是回调(Callback) ?
通俗解释:
有一个class A
,其方法为methodA()
有一个class B
,其方法为methodB()
把A对象传给B,当B调用methodB()
时调用A对象的methodA()
,这个行为就叫做回调
其中methodA()
被称之为回调方法
class A{
public void methodA(){
}
}
class B{
A a = new A();
public void methodB(){
a.methodA(); // 此处发生了回调,调用回调方法
}
}
传统写法:
// 声明回调接口
interface ICallBack{
public void callback();
}
// 类A实现了回调接口
class A implements ICallBack{
public void callback(){
}
}
class B{
ICallBack object = new A();
public void methodB(){
object.callback(); // 调用回调方法
}
}
同步调用和异步调用
同步调用:调用者(阻塞)要等待被调用者返回,才能继续执行
异步调用:调用者(非阻塞)不必等待被调用者返回,依旧继续执行
// 同步调用
public static main(String[] args){
B b = new B();
b.methodB();
System.out.println("main");
}
class B{
public void methodB(){
System.out.println("method B start...");
Thread.