用JAVA多线程实现龟兔赛跑

创建两个线程,实现龟兔赛跑,线程每次执行休眠500毫秒,两个线程每次分别执行乌龟前行10米与兔子前行10米。一方先到100米处结束程序,显示获胜信息。本人初学,请用大家写... 创建两个线程,实现龟兔赛跑,线程每次执行休眠500毫秒,两个线程每次分别执行乌龟前行10米与兔子前行10米。一方先到100米处结束程序,显示获胜信息。
本人初学,请用大家写的简单易懂一点,谢谢!!
分不够多,请大家帮帮忙!!
展开
 我来答
wujiazhao1988
推荐于2017-11-22 · TA获得超过413个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:305万
展开全部
程序如下:

/**
*
* GuiTuSaiPao.java
* @author Antonio
* 2009年9月2日20:16:33
* 实现Runnable接口中的run方法
*
*/
public class GuiTuSaiPao implements Runnable {
private String name;
private int length=0;

public GuiTuSaiPao(){}

public GuiTuSaiPao(String name){
this.name=name;
}

public void run(){
while(true){
//每次停500毫秒
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
//向前跑十米
length+=10;
System.out.println(name+"已跑了"+length+"米.");
//到达终点
if(length>=100){
System.out.println(name+",已经到达终点!");
//结束赛跑,break
break;
}
}
}

public static void main(String[] args) {
GuiTuSaiPao wugui=new GuiTuSaiPao("乌龟");
GuiTuSaiPao tuzi=new GuiTuSaiPao("兔子");
Thread thread=new Thread(wugui);
Thread thread2=new Thread(tuzi);
//启动线程
thread.start();
thread2.start();

}

}

输出结果:(不一定每次都一样!)
乌龟已跑了10米.
兔子已跑了10米.
兔子已跑了20米.
乌龟已跑了20米.
乌龟已跑了30米.
兔子已跑了30米.
兔子已跑了40米.
乌龟已跑了40米.
兔子已跑了50米.
乌龟已跑了50米.
乌龟已跑了60米.
兔子已跑了60米.
乌龟已跑了70米.
兔子已跑了70米.
乌龟已跑了80米.
兔子已跑了80米.
兔子已跑了90米.
乌龟已跑了90米.
兔子已跑了100米.
兔子,已经到达终点!
乌龟已跑了100米.
乌龟,已经到达终点!

完全看rp,这就是线程!

给分吧,哈哈
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangguo2005
2009-09-02 · TA获得超过2981个赞
知道小有建树答主
回答量:125
采纳率:100%
帮助的人:91.1万
展开全部
package test;

public class RunningGame {

public static void main(String[] args) {

Runner wugui = new Runner("wugui");
Runner tuzi = new Runner("tuzi");

//为增加趣味性,可用重载的构造函数,初始化各项数据,这样兔子睡觉时间比较多,但速度比较快,胜负难料

// Runner wugui = new Runner("wugui",500,10);
// Runner tuzi = new Runner("tuzi",1200,25);

wugui.start();
tuzi.start();
}

}

class Runner extends Thread{
private static final int LENGTH = 100; //总路程
private String name; //名字
private int sleep = 500; //睡觉时间
private int speed = 10; //速度
private int meter = 0; //当前路程

public Runner(String name) {

this.name = name;
}

public Runner(String name, int sleep) {

this.name = name;
this.sleep = sleep;
}
public Runner(String name, int sleep, int speed) {

this.name = name;
this.sleep = sleep;
this.speed = speed;
}

public void run(){

while(meter < LENGTH){
try {
Thread.sleep(sleep);
} catch (InterruptedException e) {

e.printStackTrace();
}
meter += speed;
System.out.println(name+":" + meter + " meters");
}

System.out.println(name + " win the game");
System.exit(0);

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveweizaiwan
2009-09-02 · TA获得超过425个赞
知道小有建树答主
回答量:460
采纳率:0%
帮助的人:273万
展开全部
兄弟??
还要写个程序给你??
最多是给你点提示罢了....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式