Java多线程--模拟接力赛跑
程序员文章站
2024-01-11 16:25:10
题目:模拟接力赛跑需求说明: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