多线程通信之接口回调

多线程通信之接口回调

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

	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

posted @ 2019-05-11 21:20  西江逐月  阅读(473)  评论(0编辑  收藏  举报