原文地址:
http://www.java2000.net/p10593
- /**
- * 一段模拟龟兔赛跑的多线程代码。<br>
- * 兔子比乌龟快5倍,但休息的时间长10倍。
- *
- * @author 赵学庆,Java世纪网(java2000.net)
- *
- */
- 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("兔子跑完了比赛路程!");
- }
- }
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow