当前位置: 移动技术网 > IT编程>开发语言>Java > Java多线程--模拟接力赛跑

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

2020年08月10日  | 移动技术网IT编程  | 我要评论
题目:模拟接力赛跑需求说明: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

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

相关文章:

验证码:
移动技术网