多线程通信之接口回调

多线程通信之接口回调

    接口回调:就是将接口作为另一个类的方法中的参数进行传递,再将结构回传给调用者。
    一般传递接口的匿名实现类

    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
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-07-01 15:30  天涯海角路  阅读(139)  评论(0)    收藏  举报