//利用多线程技术模拟出龟兔赛跑的场面,设计一个线程类模拟参与赛跑的角色,
// 创建该类的两个对象分别代表乌龟和兔子,兔子跑速快,但是在中间休息的睡眠时间长,
// 到终点线程运行结束。
public class Running implements Runnable{
private static String Winner; //定义第一名为静态全局变量
public static void main(String[] args) {
Thread rabbit =new Thread(new Running());//创建兔子线程
Thread turtle =new Thread(new Running());//创建乌龟线程
//启动线程
turtle.setName("乌龟");
rabbit.setName("兔子");
System.out.println("百米龟兔赛跑现在开始!");
turtle.start();rabbit.start();
}
@Override
public void run() {
int i=0;
while(Winner==null) {
if(Thread.currentThread().getName().equals("乌龟")) { //乌龟线程在跑
System.out.println("乌龟在跑,它跑了" + i + "米");
i++;
}
if(Thread.currentThread().getName().equals("兔子")){ //兔子线程在跑
System.out.println("兔子在跑,它跑了"+i+"米");
i+=10;
if(i==80) { //兔子跑到80米开始睡觉。
try {
System.out.println("兔子在睡觉");
Thread.sleep(10);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
if(i==100) { //第一名到达了终点
System.out.println("第一名是"+Thread.currentThread().getName());
Winner=Thread.currentThread().getName();
break;
}
}
}
}
[Java] 利用进程实现龟兔赛跑
于 2022-11-05 17:35:32 首次发布