仓酷云

标题: 了解下JAVA的一段摹拟龟兔竞走的多线程代码 [打印本页]

作者: 再现理想    时间: 2015-1-18 11:05
标题: 了解下JAVA的一段摹拟龟兔竞走的多线程代码
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的
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.sleep(10);
      } catch (InterruptedException e) {
      }
    }
    System.out.println("兔子跑完了竞赛旅程!");

  }
}

C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊
作者: 变相怪杰    时间: 2015-1-20 14:12
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 不帅    时间: 2015-1-24 12:29
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 仓酷云    时间: 2015-1-24 17:41
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 只想知道    时间: 2015-1-31 05:10
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 灵魂腐蚀    时间: 2015-2-1 22:50
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 兰色精灵    时间: 2015-2-7 15:35
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 透明    时间: 2015-2-22 10:15
是一种语言,用以产生「小应用程序(Applet(s))
作者: 山那边是海    时间: 2015-3-6 23:52
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 若天明    时间: 2015-3-20 20:57
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2