多线程之龟兔赛跑:
开启两条线程,乌龟一个, 兔子一个,得出胜利者后线程停止
可以将兔子的线程设置暂停一段时间再跑
package tbw.Demo06;
import tbw.Demo02.Teacher;
import java.io.*;
import java.util.HashSet;
import java.util.Scanner;
import static java.lang.Thread.sleep;
public class Demo01 implements Runnable{
private static String winner;
@Override
public void run() {
while (true){
for (int i = 0; i <= 100; i++) {
if (gameOver(i))break;
System.out.println(Thread.currentThread().getName()+"跑了"+i);
if (Thread.currentThread().getName().equals("兔子")) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
break;
}
}
private boolean gameOver(int step){
if (winner!=null)return true;
if (step==100){
winner=Thread.currentThread().getName() ;
System.out.println("胜利者是"+winner);
return true;
}
return false;
}
public static void main(String[] args) {
Demo01 demo01 = new Demo01();
new Thread(demo01,"兔子").start();
new Thread(demo01,"乌龟").start();
}
}