多线程通信之接口回调
接口回调:就是将接口作为另一个类的方法中的参数进行传递,再将结构回传给调用者。
一般传递接口的匿名实现类
public static void main(String[] args) {
AThread a = new AThread();
a.setName("A");
a.start();
}
}
//调用者A
class AThread extends Thread {
@Override
public void run() {
BThread b = new BThread();
b.setName("B");
//传递接口匿名实现类
b.setCb(new ICallBack() {
@Override
public int fun(int a, int b, String message) {
int sum = a + b;
System.out.println("收到了来自于B线程的消息: " + message);
return sum;
}
});
//回调
b.start();
}
}
class BThread extends Thread {
private ICallBack cb;
public BThread() {}
public BThread(String name, ICallBack cb) {
super(name);
this.cb = cb;
}
public void setCb(ICallBack cb) {
this.cb = cb;
}
@Override
public void run() {
// 这里你想要传递什么数据就通过实参,实参你可以自己任意的确定 B->A
int result = cb.fun(10, 20, "我是线程B带过来两个整数数据");
// 这里的result是 A线程【调用者】传递给B线程 A->B
System.out.println("收到了来自于A线程的数据: " + result);
}
}
// 回调接口
interface ICallBack {
int fun(int a, int b, String message);
}
以上
@Fzxey