zoukankan      html  css  js  c++  java
  • 多线程通信之接口回调

    多线程通信之接口回调

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

    	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

  • 相关阅读:
    UOJ 30 【CF Round #278】Tourists
    CodeForces 1070F Katya and Segments Sets
    Django系列3:Model的简单对接
    Django系列2:MTV简单流程
    python virtualenv
    vscode使用
    Django 系列1:Django简介
    vue-cli3/4 vue ui创建elementui项目
    npm安装参数
    vue系列11:vuex
  • 原文地址:https://www.cnblogs.com/fzxey/p/10850108.html
Copyright © 2011-2022 走看看