//模拟归途赛跑
public class TestThread5 implements Runnable{
private static String winner;
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
//兔子每十步休息2毫秒
if(Thread.currentThread().getName().equals("兔子") && i%10==0){
try {
Thread.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//乌龟每十步休息1毫秒
if(Thread.currentThread().getName().equals("乌龟")&& i%10==0){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
boolean flag = getWinner(i);
if(flag){
break;
}
System.out.println(Thread.currentThread().getName()+">>跑了"+i+"不");
}
}
//判断是否存在胜利者
private boolean getWinner(int steps){
if(winner!=null){
return true;
}{
if(steps>=100){
winner=Thread.currentThread().getName();
System.out.println("胜利者是"+winner);
return true;
}
}
return false;
}
public static void main(String[] args) {
TestThread5 t1 = new TestThread5();
TestThread5 t2 = new TestThread5();
new Thread(t1,"兔子").start();
new Thread(t2,"乌龟").start();
}
}
JAVA多线程02——模拟龟兔赛跑
于 2022-02-17 15:20:28 首次发布