找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 793|回复: 1

一段模拟龟兔赛跑的多线程Java代码

[复制链接]

735

主题

1102

回帖

3076

牛毛

二级牛人

积分
3096
QQ
发表于 2009-6-14 07:41:28 | 显示全部楼层 |阅读模式 来自 山东省威海市
一段模拟龟兔赛跑的多线程Java代码


  Java代码

/**  
 * 一段模拟龟兔赛跑的多线程程序。<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.s

leep(10);   
      } catch (InterruptedException e) {   
      }   
    }   
    System.out.println("兔子跑完了比赛路程!");   
  
  }   
}  

56

主题

693

回帖

1015

牛毛

二级牛人

,,,,

积分
1015
发表于 2009-7-13 11:36:57 | 显示全部楼层 来自 福建省三明市
呵呵
谢谢楼主分享
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-24 22:03 , Processed in 0.160386 second(s), 34 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表