首页 / JAVA / java多线程模拟实现龟兔赛跑
java多线程模拟实现龟兔赛跑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java多线程模拟实现龟兔赛跑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1984字,纯文字阅读大概需要3分钟。
内容图文
![java多线程模拟实现龟兔赛跑](/upload/InfoBanner/zyjiaocheng/712/dc9003ede98a4fa2af5c87da253e54ef.jpg)
RabbitAndTurtle3.java
package com.Thread2;
/**龟兔赛跑:实现Runnable接口,
* 此时两个线程共用一个run方法,如果给run加锁,执行效果会很明显,要么先执行完兔子的线程后再执行乌龟的,反之相反,区别在于谁先拿到资源
* 先执行了run方法,显然这种可以证明此时执行了一个run方法而不是两个。
* 测试类;Race3.java
* @author HYZX
* 假设兔子一次跑4米,乌龟一次跑1米
*/
public class RabbitAndTurtle3 implements Runnable{
int i;
int j;
static boolean flag=true;
public void run() {
while(flag){
double num=Math.random();
if(num<=0.3&&"兔子".equals(Thread.currentThread().getName())){
i=i+4;
System.out.println(Thread.currentThread().getName()
+"跑了:"+i+"米");
if(i==100){
System.out.println("比赛结束!------第一名是:"+Thread.currentThread().getName()
+"跑了:"+i+"米");
flag=false;
}
}else if(num<=1&&num>0.3&&"乌龟".equals(Thread.currentThread().getName())){
j=j+1;
System.out.println(Thread.currentThread().getName()
+"跑了:"+j+"米");
if(j==100){
System.out.println("比赛结束!------第一名是:"+Thread.currentThread().getName()
+"跑了:"+j+"米");
flag=false;
}
}
}
}
}
Race3.java
package com.Thread2;
public class Race3 {
public static void main(String[] args) {
RabbitAndTurtle3 r=new RabbitAndTurtle3();
Thread tuzi =new Thread(r,"兔子");
Thread wugui=new Thread(r,"乌龟");
tuzi.start();
wugui.start();
}
}
效果如下:
兔子跑了:4米
乌龟跑了:1米
兔子跑了:8米
乌龟跑了:2米
乌龟跑了:3米
乌龟跑了:4米
乌龟跑了:5米
乌龟跑了:6米
乌龟跑了:7米
兔子跑了:12米
乌龟跑了:8米
兔子跑了:16米
乌龟跑了:9米
乌龟跑了:10米
乌龟跑了:11米
乌龟跑了:12米
乌龟跑了:13米
兔子跑了:20米
乌龟跑了:14米
乌龟跑了:15米
乌龟跑了:16米
乌龟跑了:17米
兔子跑了:24米
乌龟跑了:18米
兔子跑了:28米
乌龟跑了:19米
兔子跑了:32米
乌龟跑了:20米
兔子跑了:36米
乌龟跑了:21米
兔子跑了:40米
兔子跑了:44米
兔子跑了:48米
兔子跑了:52米
兔子跑了:56米
兔子跑了:60米
兔子跑了:64米
兔子跑了:68米
兔子跑了:72米
兔子跑了:76米
兔子跑了:80米
兔子跑了:84米
兔子跑了:88米
兔子跑了:92米
兔子跑了:96米
兔子跑了:100米
比赛结束!------第一名是:兔子跑了:100米
内容总结
以上是互联网集市为您收集整理的java多线程模拟实现龟兔赛跑全部内容,希望文章能够帮你解决java多线程模拟实现龟兔赛跑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。