1. 程式人生 > >Java100-008:利用多執行緒實現龜兔賽跑

Java100-008:利用多執行緒實現龜兔賽跑

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;
	}
}