多线程通信之接口回调
多线程通信之接口回调
接口回调:就是将接口作为另一个类的方法中的参数进行传递,再将结构回传给调用者。
一般传递接口的匿名实现类
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);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
以上
@Fzxey
---------------------
作者:Fzxey
来源:CSDN
原文:https://blog.csdn.net/Fzxey/article/details/90115128
版权声明:本文为博主原创文章,转载请附上博文链接!

浙公网安备 33010602011771号