题目:乌龟速度1米/1000毫秒,兔子速度2米/2000毫秒。跑道全程800米,兔子会在赛道600米处突然自负,在原地休息120000毫秒(120秒)。谁将率先到达终点取得胜利?
主要思路:将乌龟和兔子设置成比赛的内部类,运用休眠机制。
代码如下:
package GGS2;
public class Race {
private int WuguiDistance=0;
private int TuziDistance=0;
//乌龟线程
class Wugui extends Thread{
public void run() {
for(int a=1;a<800;a++) {
if(TuziDistance==800) {
System.out.println("兔子已经到达终点,乌龟跑了"+WuguiDistance+"米");
break;
}else {
WuguiDistance+=1;
try {
Thread.sleep(1000);
System.out.println("乌龟跑了"+WuguiDistance+"米,"+"这时兔子跑了"+TuziDistance+"米");
} catch (InterruptedException e) {
e.printStackTrace(); }
}
}
}
}
//兔子线程
class Tuzi extends Thread{
public void run() {
for(int b=1;b<800;b+=2) {
if(WuguiDistance==800) {
System.out.println("乌龟已经到达终点,兔子跑了"+TuziDistance+"米");
break;
}else {
TuziDistance+=2;
if(TuziDistance==600) {
try {
System.err.println("兔子觉得自己赢定了,决定休息一下。");
Thread.sleep(12000);
}catch (InterruptedException e) {
e.printStackTrace();
}
}
try {
Thread.sleep(1000);
System.out.println("乌龟跑了"+WuguiDistance+"米,"+"这时兔子跑了"+TuziDistance+"米");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
//入口
public static void main(String[] args) {
Race race=new Race();
Wugui wugui=race.new Wugui();
Tuzi tuzi=race.new Tuzi();
wugui.start();
tuzi.start();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)