黑马程序员技术交流社区
标题:
一个有意思的多线程
[打印本页]
作者:
彭卫红
时间:
2014-8-28 00:59
标题:
一个有意思的多线程
public class Transformer { // 本程序的测试类
public static void main(String[] args) { // java程序执行入口处
Defensor defensor = new Defensor(); // 默认情况下父类Defensor是普通线程
defensor.start(); // 启动Defensor类线程
try {
Thread.sleep(500);
} catch (InterruptedException e) { // 捕获被唤醒异常
System.out.println("唤醒异常:" + e.getMessage());
}
}
}
class Defensor extends Thread { // 操作守护神线程的类
public void run() {
System.out.print("当霸天虎在袭击地球的危难关头,守护神是否采取自我保护? ");
System.out.println(this.isDaemon() ? "是" : "没有");// 测试该线程是否为守护线程。
System.out.println("守护神Defensor是机器卫兵的组合战士,个性善良,愿意牺牲自己去保护人类");
Human people = new Human();
people.setDaemon(true); // 设置守护线程,在本程序中将其子类people设置为守护线程也就是被保护的对象
people.start(); // 启动守护线程
try {
Thread.sleep(1000); // 休眠1秒
} catch (InterruptedException e) { // 捕获唤醒异常
System.out.println("唤醒异常:" + e.getMessage());
} finally { // 内容总执行
System.out.println("在面对危险的时候,守候神舍身捍卫地球,保护人类的安全");
}
System.out.println("守候神太伟大了...");
}
}
class Human extends Thread {
public void run() {
System.out.print("人类的安全是否被保护?");
System.out.println(this.isDaemon() ? "是" : "没有");// 判断此线程是否是守护线程
System.out.println("现在有5处场所的人们正处于危险之中!!!");
int i = 0;
try {
while (i < 5) { // 进行5次循环
System.out.println("第" + (1 + i++) + "处场所的人类");
Thread.sleep(200); // 休眠0.2秒
}
} catch (InterruptedException e) { // 捕获唤醒异常
System.out.println("唤醒异常:" + e.getMessage());
} finally { // 内容总执行
System.out.println("守候神尽心尽力,帮助人类安全的躲过霸天虎的疯狂袭击");
}
System.out.println("终于脱离危险了~~~");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2