您的位置:首页 > 编程语言 > Java开发

Java-马士兵设计模式学习笔记-观察者模式-OOD线程

2015-06-19 11:27 1036 查看
一、概述

1.情景:孩子睡觉,醒后要吃东西,用java模拟此情况

2.设计:child类,Dad类,都继承Runnable,dad线程监视child线程(缺点:因为要监视,所以耗cup资源)

二、代码

Test.java

class Child implements Runnable {

private boolean wakenUp = false;

public boolean isWakenUp() {
return wakenUp;
}

public void setWakenUp(boolean wakenUp) {
this.wakenUp = wakenUp;
}

public void wakeUp(){
wakenUp = true;
}

@Override
public void run() {
try {
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
wakeUp();
}
}

class Dad implements Runnable{

Child c;

public Dad(Child c) {
this.c = c;
}

@Override
public void run() {
while(!c.isWakenUp()){
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}

feed(c);
}

private void feed(Child c) {
System.out.println("feed child");
}

}

public class Test {

public static void main(String[] args) {
Child c = new Child();
Dad d = new Dad(c);
new Thread(c).start();
new Thread(d).start();;
}
}


  

运行结果:

3秒后出现

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: