美文网首页
java多线程2-隋唐演义实例

java多线程2-隋唐演义实例

作者: 柳仁儿 | 来源:发表于2017-08-29 16:00 被阅读0次

//军队线程

//模拟作战双方的行为

public class ArmyRunnable implements Runnable {

// volatile保证了线程可以正确的读取其他线程写入的值

// 可见性 ref JMM, happens-before原则

volatile boolean keepRunning = true;

@Override

public void run() {

while (keepRunning) {

// 发动5连击

for (int i = 0; i < 5; i++) {

System.out.println(Thread.currentThread().getName() + "进攻对方[" + i + "]");

// 让出了处理器时间,下次该谁进攻还不一定呢!

Thread.yield();

}

}

System.out.println(Thread.currentThread().getName() + "结束了战斗!");

}

}

====================================================================

//关键人物线程

public class KeyPersonThread extends Thread {

public void run() {

System.out.println(Thread.currentThread().getName() + "开始了战斗!");

for (int i = 0; i < 10; i++) {

System.out.println(Thread.currentThread().getName() + "左突右杀,攻击隋军...");

}

System.out.println(Thread.currentThread().getName() + "结束了战斗!");

}

}

============================================================

/**

* 隋唐演义大戏舞台

*/

public class Stage extends Thread {

public void run() {

System.out.println("欢迎观看隋唐演义");

// 让观众们安静片刻,等待大戏上演

try {

Thread.sleep(5000);

} catch (InterruptedException e1) {

e1.printStackTrace();

}

System.out.println("大幕徐徐拉开");

try {

Thread.sleep(5000);

} catch (InterruptedException e1) {

e1.printStackTrace();

}

System.out.println("话说隋朝末年,隋军与农民起义军杀得昏天黑地...");

ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable();

ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();

// 使用Runnable接口创建线程

Thread armyOfSuiDynasty = new Thread(armyTaskOfSuiDynasty, "隋军");

Thread armyOfRevort = new Thread(armyTaskOfRevolt, "农民起义军");

// 启动线程,让军队开始作战

armyOfSuiDynasty.start();

armyOfRevort.start();

// 舞台线程休眠,大家专心观看军队厮杀

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("正当双方激战正酣,半路杀出了个程咬金");

Thread mrCheng = new KeyPersonThread();

mrCheng.setName("程咬金");

System.out.println("程咬金的理想就是结束战争,使百姓安居乐业!");

// 停止军队作战

// 停止线程的方法

armyTaskOfSuiDynasty.keepRunning = false;

armyTaskOfRevolt.keepRunning = false;

try {

Thread.sleep(2000);

} catch (InterruptedException e) {

e.printStackTrace();

}

/*

* 历史大戏留给关键人物

*/

mrCheng.start();

// 万众瞩目,所有线程等待程先生完成历史使命

try {

mrCheng.join();

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("战争结束,人民安居乐业,程先生实现了积极的人生梦想,为人民作出了贡献!");

System.out.println("谢谢观看隋唐演义,再见!");

}

public static void main(String[] args) {

new Stage().start();

}

}

=============================

运行结果

欢迎观看隋唐演义

大幕徐徐拉开

话说隋朝末年,隋军与农民起义军杀得昏天黑地...

农民起义军进攻对方[0]

隋军进攻对方[0]

农民起义军进攻对方[1]

隋军进攻对方[1]

农民起义军进攻对方[2]

隋军进攻对方[2]

隋军进攻对方[3]

隋军进攻对方[4]

隋军进攻对方[0]

农民起义军进攻对方[3]

隋军进攻对方[1]

农民起义军进攻对方[4]

隋军进攻对方[2]

农民起义军进攻对方[0]

隋军进攻对方[3]

农民起义军进攻对方[1]

隋军进攻对方[4]

农民起义军进攻对方[2]

。。。。。。。

。。。。。。。

农民起义军进攻对方[4]

隋军进攻对方[3]

农民起义军进攻对方[0]

隋军进攻对方[4]

农民起义军进攻对方[1]

隋军进攻对方[0]

农民起义军进攻对方[2]

隋军进攻对方[1]

农民起义军进攻对方[3]

正当双方激战正酣,半路杀出了个程咬金

程咬金的理想就是结束战争,使百姓安居乐业!

农民起义军进攻对方[4]

农民起义军结束了战斗!

隋军进攻对方[2]

隋军进攻对方[3]

隋军进攻对方[4]

隋军结束了战斗!

程咬金开始了战斗!

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金左突右杀,攻击隋军...

程咬金结束了战斗!

战争结束,人民安居乐业,程先生实现了积极的人生梦想,为人民作出了贡献!

谢谢观看隋唐演义,再见!

相关文章

  • java多线程2-隋唐演义实例

    //军队线程 //模拟作战双方的行为 public class ArmyRunnable implements R...

  • Java多线程

    ** 2-3 Java线程-隋唐演义实战开发---演员简介 ** 2-4 Java线程-隋唐演义实战开发---军队...

  • Java多线程-实例解析

    Java多线程实例 3种实现方法 Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Th...

  • Java的基本概念-1

    JAVA介绍 面向对象程序和java平台总称不使用指针,使用引用支持多线程 Java基础语法 对象:类的实例,分为...

  • 多线程

    1-JAVA多线程 2-生命周期 3-线程优先级 4-创建线程 5-Thread方法

  • Java并发之synchronized

    Java多线程同步关键词是常用的多线程同步手段。它可以修饰静态类方法,实例方法,或代码块。修饰static静态方法...

  • Java多线程知识点汇总

    Java 多线程 多线程:指的是这个程序(一个进程)运行时产生了不止一个线程 并行与并发:并行:多个cpu实例或者...

  • Java多线程基础——多线程实例

    前言   在之前我们讲述了Java的线程模型,理解清楚了过后再我们使用的过程中才能得心应手,防止不必要的错误出现,...

  • java 多线程应用实例

  • 带你搞懂Java多线程(五)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四) ...

网友评论

      本文标题:java多线程2-隋唐演义实例

      本文链接:https://www.haomeiwen.com/subject/seiodxtx.html