Java代码
/** * 一段模拟龟兔赛跑的多线程程序。 * 兔子比乌龟快5倍,但休息的 时间长10倍。 * * @ * */public class T { public static void main(String[] args) { TortoiseRace a = new TortoiseRace(); Thread runner1 = new Thread (a); RabbitRace b = new RabbitRace(); Thread runner2 = new Thread(b); runner1.start(); runner2.start(); while (ready < 2) { try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } } synchronized (lock) { lock.notifyAll(); } } static Object lock = new Object(); static int ready = 0;}class TortoiseRace implements Runnable { public void run() { synchronized (T.lock) { T.ready++; try { T.lock.wait(); } catch (InterruptedException e1) { e1.printStackTrace(); } } int TortoiseDistance = 0; for (int i = 0; TortoiseDistance <= 1000; i++) { TortoiseDistance++; System.out.println("乌龟跑了1 米!"); try { Thread.sleep(1); } catch (InterruptedException e) { } } System.out.println("乌 龟已经跑完了比赛路程!"); }}class RabbitRace implements Runnable { public void run() { T.ready++; synchronized (T.lock) { try { T.lock.wait(); } catch (InterruptedException e1) { e1.printStackTrace(); } } int RabbitDistance = 0; for (int j = 0; RabbitDistance <= 1000; j++) { RabbitDistance += 5; System.out.println("兔子跑了5米!"); try { Thread.sleep (10); } catch (InterruptedException e) { } } System.out.println("兔子跑完了比赛路程!"); }}
这一生我只牵你的手,因为今生有你早已足够。