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

军队线程 *模拟作战双方的行为

2017-09-26 10:55 369 查看
package com.concurrent;

/*

 *

 *军队线程

 *模拟作战双方的行为

 */

public class ArrayRunnable implements Runnable {

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

    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()+"结束战斗");

    }

}

package com.concurrent;

public class KeyPersionThread 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()+"结束了战斗");

    }

}

package com.concurrent;

/*

 * 这是

 */

public class stage extends Thread {

    

    public void run() {

        

        //实例化对象

        ArrayRunnable arrayTaskOfSuiDynasty=new ArrayRunnable();

        ArrayRunnable arrayTaskOfRevolt=new ArrayRunnable();

        

        //使用Runnable接口创建线程对象

        Thread arrayOfSuiDynasty=new Thread(arrayTaskOfSuiDynasty,"随军");

        Thread arrayOfRevolt=new Thread(arrayTaskOfRevolt,"农民起义军");

        

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

        arrayOfSuiDynasty.start();

        arrayOfRevolt.start();

        

        // 舞台线程休眠

        try {

            Thread.sleep(50);

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

        arrayTaskOfSuiDynasty.keepRunning=false;

        arrayTaskOfRevolt.keepRunning=false;

        

        //使其他线程等待当前线程终止join

        try {

            arrayOfRevolt.join();

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

        

        

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

        

        Thread mrcheng=new KeyPersionThread();

        mrcheng.setName("程咬金");

        

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

        

        //军队停止作战

        arrayTaskOfRevolt.keepRunning=false;

        arrayTaskOfSuiDynasty.keepRunning=false;

        

        

        

                try {

                    Thread.sleep(2000);

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

                /*

                 *

                 * 历史大戏留给关键人物

                 */

                mrcheng.start();

                

                //等待程咬金 完成历史使命

                try {

                    mrcheng.join();

                } catch (InterruptedException e) {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }

                

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

    }

    public static void main(String[] args) {

        

        new stage().start();

    }

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