美文网首页
多线程之龟兔赛跑

多线程之龟兔赛跑

作者: 是我真的是我 | 来源:发表于2019-11-05 23:05 被阅读0次

Race

/**
 * 比赛龟兔赛跑
 */
public class Race {

    boolean isWin = false;
    public static void main(String[] args) {
        Race race = new Race();
        Thread rabbit = new Thread(new Rabbit(race), "兔子");
        Thread t = new Thread(new T(race), "乌龟");
        rabbit.start();
        t.start();
    }
}

Rabbit

/**
 * 兔子
 */
public class Rabbit implements Runnable{
    private Race race;
    public Rabbit(Race r){
        race = r;
    }

    @Override
    public void run(){
        try {
            for(int i=0; i<=100; i+=10){
                if (race.isWin)
                    return ;

                System.out.println("兔子"+ i);
                if(i == 100){
                    race.isWin = true;
                    System.out.println("兔子赢了");
                    return ;
                }

                int rt = (int)(Math.random() * 500);
                Thread.sleep(rt);
            }
        }catch (Exception e){

        }
    }
}

tortoise

/**
 * 乌龟
 */
public class T implements Runnable {
    Race race;
    public T(Race r){
        race = r;
    }

    @Override
    public void run(){
        try {
            for(int i=0; i<=100; i+=4){
                if (race.isWin)
                    return;

                System.out.println("乌龟" + i);
                if (i == 100){
                    race.isWin = true;
                    System.out.println("乌龟赢了");
                    return;
                }

                Thread.sleep(100);
            }
        }catch (Exception e){

        }
    }
}

相关文章

网友评论

      本文标题:多线程之龟兔赛跑

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