欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java多线程--模拟接力赛跑

程序员文章站 2022-04-15 17:51:37
题目:模拟接力赛跑需求说明:1、多人参加1000米接力跑2、每人跑100米,换下个选手3、每跑10米显示信息实现思路:1、创建线程类RunThread 1.1多人共跑1000米,涉及多线程共享数据2、实现run()方法 2.1二重循环实现3、使用线程同步保证在跑选手只有1人4、实现测试类 4.1创建多个线程模拟多个选手参加比赛解题代码:public class Demo1 implements Runnable { p......

题目:模拟接力赛跑

需求说明:

1、多人参加1000米接力跑

2、每人跑100米,换下个选手

3、每跑10米显示信息

实现思路:

1、创建线程类RunThread

1.1多人共跑1000米,涉及多线程共享数据

2、实现run()方法

2.1二重循环实现

3、使用线程同步保证在跑选手只有1人

4、实现测试类

4.1创建多个线程模拟多个选手参加比赛

解题代码:

public class Demo1 implements Runnable {
    private int meters = 1000;  //共跑1000米

    @Override
    public void run() {
        while (true) {
            if (meters <= 100) {
                break;
            }
            go();
            return;
        }
    }
    //同步方法:跑步(每人跑100米)
    public synchronized void go() {
        System.out.println(Thread.currentThread().getName() + "拿到接力棒!");
        for (int i = 0; i < 100; i += 10) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "跑了" + (i + 10) + "米!");
        }
        meters -= 100;
    }
}
class Demo1Test {
    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
        //8人参加接力赛跑
        for (int i = 0; i < 8 ; i++) {
            new Thread(demo1,(i+1)+"号选手").start();

        }
    }
}

本文地址:https://blog.csdn.net/m0_49517277/article/details/107889172