程序功能:
1。 老师让学生跑步
2。然后老师做其他事情
3。学生跑完回来告诉了老师
4。老师 最后回应了同学
//学生给老师的交流窗口
public interface Callback {
void returnDate(String result);
}
public class Student {
/**
*
* @param callback 就是返回给老师结果的一个通道
* @param instruction 老师说的指令
*/
public void deal(Callback callback,String instruction) {
/**
* 这个线程的作用就是让返回结果迟5s再返回,不然结果输出不明显
*/
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
callback.returnDate("同学们说:跑完了...");
}
}).start();
}
}
public class TyTeacher implements Callback {
private Student teacherWindow; //有个指导学生的窗口
TyTeacher(Student student){//获得学生对象
this.teacherWindow = student;
}
/**
*
* @param question 老师的命令
* 这个线程 的作用就是开辟新线程,让学生执行命令,然后主线程是老师做其他事情。
*/
public void ask(String instruction) {
new Thread(new Runnable() {
@Override
public void run() {
teacherWindow.deal(TyTeacher.this, instruction);
}
}).start();
}
@Override
public void returnDate(String result) {
// TODO Auto-generated method stub
System.out.println(result);
System.out.println("老师说:我烟也抽完了");
}
public static void main(String[]args) {
TyTeacher tyTeacher = new TyTeacher(new Student()); //实例老师对象,初始化学生窗口
System.out.println("老师说:跑个一千米了,5s跑完");
tyTeacher.ask("老师说:你去跑个");//老师调用指令
System.out.println("老师说:我抽支烟");
}
}