Java-线程的简单使用

这里模拟一下龟兔赛跑问题,首先给出的是乌龟和兔子类,里面含有run方法。

乌龟

/** * @ClassName: Tortoise * @Author: Leo * @Description: * @Date: 2019/5/2 21:42 */
public class Tortoise implements Runnable {
    private int totalStep;
    private int step;

    public Tortoise(int totalStep) {
        this.totalStep = totalStep;
    }

    @Override
    public void run() {
        while (step < totalStep) {
            step++;
            System.out.printf("乌龟跑了 %d 步%n", step);
        }
    }
}

兔子

/** * @ClassName: Hare * @Author: Leo * @Description: * @Date: 2019/5/2 21:46 */
public class Hare implements Runnable {
    private boolean[] flags = {true, false};
    private int totalStep;
    private int step;

    public Hare(int totalStep) {
        this.totalStep = totalStep;
    }

    @Override
    public void run() {
        while (step < totalStep) {
            boolean isHareSleep = flags[(int) (Math.random() * 10 % 2)];
            if (isHareSleep) {
                System.out.println("兔子睡着了~");
            } else {
                step += 2;
                System.out.printf("兔子跑了 %d 步%n", step);
            }
        }
    }
}

测试主类

public class Main {
    public static void main(String[] args) {
        Tortoise tortoise = new Tortoise(10);
        Hare hare = new Hare(10);

        new Thread(tortoise).start();
        new Thread(hare).start();
    }
}

输出结果

乌龟跑了 1 步
乌龟跑了 2 步
兔子睡着了~
乌龟跑了 3 步
兔子跑了 2 步
乌龟跑了 4 步
乌龟跑了 5 步
乌龟跑了 6 步
乌龟跑了 7 步
乌龟跑了 8 步
乌龟跑了 9 步
兔子睡着了~
兔子跑了 4 步
兔子睡着了~
兔子跑了 6 步
兔子跑了 8 步
兔子睡着了~
兔子睡着了~
兔子跑了 10 步
乌龟跑了 10 步
全部评论

相关推荐

明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
zhiyog:哈哈哈,其实是津巴布韦币
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务