Java 100-008:マルチスレッドでウサギの競走を実現
1080 ワード
package java02;
/**
* java 100 008
*
* @author Administrator
*
*/
public class java0082 {
public static void main(String[] args) {
//
Racer r = new Racer();
// ( , )
new Thread(r,"tortoise").start();
new Thread(r,"rabbit").start();
}
}
class Racer implements Runnable{
public static String winner;
public void run(){
for(int steps=1;steps<=100;steps++) {
//
if(Thread.currentThread().getName().equals("rabbit")&&steps%10==0) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+"-->"+steps);
boolean flag = GameOver(steps);
if(flag==true) {
break;
}
}
}
public boolean GameOver(int steps) {
if(winner!=null) {
return true;
}else {
if(steps == 100) {
winner = Thread.currentThread().getName();
System.out.println("winner-->"+winner);
return true;
}
}
return false;
}
}