回调 :
1、定义一个接口,里面写入方法用于从线程中获取返回信息
2、开启一个线程,将任务给Employee,在Employee中有一个方法含有两个参数
Ⅰ、实现了该接口的实例, Ⅱ、任务 Boss-->Employee(携带boss给employee的任务)
3、在Employee中通过方法参数传入的实例调用回调方法将信息返还给Boss
Employee-->Boss(返回任务完成的结果)
输出结果: boss发布的任务是: 这批文件处理一下
任务是否完成:successful
代码:
- package d;
-
- import java.util.concurrent.TimeUnit;
-
- /**
- * 回调 :
- * 1、定义一个接口,里面写入方法用于从线程中获取返回信息
- * 2、开启一个线程,将任务给Employee,在Employee中有一个方法含有两个参数
- * Ⅰ、实现了该接口的实例, Ⅱ、任务 Boss-->Employee(携带boss给employee的任务)
- * 3、在Employee中通过方法参数传入的实例调用回调方法将信息返还给Boss
- * Employee-->Boss(返回任务完成的结果)
- *
- * 输出结果: boss发布的任务是: 这批文件处理一下
- 任务是否完成:successful
- *
- * @author he
- *
- */
-
- interface callBack {
-
- public void back(String msg);
- }
-
- class Boss implements callBack {
- private Employee employee;
-
- public Boss(Employee employee) {
- this.employee = employee;
- }
-
-
- public void sendTask(final String task) {
- new Thread(new Runnable() {
- public void run() {
-
- employee.getTask(Boss.this, task);
- }
- }).start();
- }
-
-
- public void back(String msg) {
- System.out.println("任务是否完成:" + msg);
- }
-
- }
-
- class Employee {
-
- public void getTask(callBack boss, String task) {
- System.out.println("boss发布的任务是: " + task);
- try {
-
- TimeUnit.MILLISECONDS.sleep(5);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- boss.back("successful");
- }
- }
-
- public class Test {
- public static void main(String[] args) {
- Employee employee = new Employee();
- Boss boss = new Boss(employee);
- boss.sendTask("这批文件处理一下");
- }
- }
原文地址:http://www.bysocket.com/?p=636
http://blog.csdn.net/xiaanming/article/details/8703708
http://blog.csdn.net/xiaanming/article/details/8703708
http://blog.csdn.net/pi9nc/article/details/23169357