多线程通信之接口回调

多线程通信之接口回调

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

    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

猜你喜欢

转载自www.cnblogs.com/fzxey/p/10850108.html