java多线程经典题目

重点内容

/**
* Description: 龟兔赛跑游戏

* Copyright (c) , 2016, Jansonxu

* This program is protected by copyright laws.

* Program Name:ToristAndRabbitRunGame.java

* Date: 2016年1月26日
*
* @author 李阳
* @version : 1.0
*/
package yestdayProject;

public class ToristAndRabbitRunGame {
private int toristDistance;//乌龟跑过的距离
private int rabbitDistance;//兔子跑过的距离
/**
* 乌龟线程内部类
*/
class Torist extends Thread{

    @Override
    public void run() {
        //分析编程代码
        for(int i=1;i<=1000;i++){
            //判断兔子是否到达终点
            if(rabbitDistance==1000){
                //当兔子先1000的时候 兔子就已经赢了
                System.out.println("兔子赢得了比赛,此时乌龟才跑了"+toristDistance+"米");
                break;
            }else{
                //乌龟开始跑
                toristDistance+=1;
                //判断距离是否是100的倍数
                if(toristDistance%100==0){
                    try {
                        System.out.println("乌龟跑过了【"+toristDistance+"】米,此时兔子跑过段距离是【"+rabbitDistance+"】");
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    }
}
/**
 * 兔子线程内部类
 */
class Rabbit extends Thread{

    @Override
    public void run() {
        //分析编程代码
        for(int i=1;i<=1000/5;i++){
            //判断兔子是否到达终点
            if(toristDistance==1000){
                //当兔子先1000的时候 兔子就已经赢了
                System.out.println("乌龟赢得了比赛,此时兔子才跑了"+rabbitDistance+"米");
                break;
            }else{
                //乌龟开始跑
                rabbitDistance+=5;
                //判断距离是否是100的倍数
                if(rabbitDistance%20==0){
                    try {
                        System.out.println("兔子跑过二段距离是【"+rabbitDistance+"】"+"乌龟跑过了【"+toristDistance+"】米,");
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    }
}
//测试
public static void main(String[] args) {
    //1 外部类实例构建 
    ToristAndRabbitRunGame outer=new ToristAndRabbitRunGame();
    //2兔子 乌龟线程实例构建
    Rabbit rabbit=outer.new Rabbit();
    Torist torist=outer.new Torist();
    //3 依次启动
    //在现实中 也不可能两个同时跑 这样也是很公平的
    rabbit.start();
    torist.start();
}

}

你可能感兴趣的:(java多线程经典题目)