1. 程式人生 > >多線程通信之接口回調

多線程通信之接口回調

() rgs 通信 ssa turn nds 數據 oid static

多線程通信之接口回調

接口回調:就是將接口作為另一個類的方法中的參數進行傳遞,再將結構回傳給調用者。
一般傳遞接口的匿名實現類

    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

多線程通信之接口回調