• 多线程通信之接口回调


    多线程通信之接口回调

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

    	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

  • 相关阅读:
    activiti初学
    Python微信跳一跳外挂
    Linux下将Mongodb单机升级至副本集
    Linux安装Mongodb4.2
    Python3 acm基础输入输出
    Nginx安装图片模块出错,提示fatal error: curl/curl.h
    基于Redis的分布式锁两种实现方式
    Nginx常用模块安装命令
    Nginx安装Nginx-echo模块
    Nginx使用图片处理模块
  • 原文地址:https://www.cnblogs.com/fzxey/p/10850108.html
Copyright © 2020-2023  润新知