//龟兔赛跑

public class Race implements Runnable{

private static String winner;

@Override

public void run() {

for (int i = 0; i <= 100 ;) {

//模拟兔子休息

if (Thread.currentThread().getName().equals("兔子") && i%20==0){

try {

Thread.sleep(1);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

boolean flag = gameOver(i);

if (flag){

break;

}

if (Thread.currentThread().getName().equals("兔子")){

i += 10;

}else {

i++;

}

System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");

}

}

//判断是否完成比赛

private boolean gameOver(int steps){

if (winner != null){

return true;

}

if (steps == 100){

winner = Thread.currentThread().getName();

System.out.println("winner is "+winner);

return true;

}

return false;

}

public static void main(String[] args) {

Race race = new Race();

new Thread(race,"兔子").start();

new Thread(race,"乌龟").start();

}

}

java编写龟兔赛跑_java--龟兔赛跑模拟相关推荐

  1. JAVA编写的使用Socket模拟Http的GET操作

    JAVA编写的使用Socket模拟Http的GET操作,看后就很容易理解Web浏览器的原理了. import java.io.BufferedReader; import java.io.InputS ...

  2. JAVA:编写一个程序,模拟电梯得功能。功能接口包括电梯上行按钮、下行按钮、楼层选择与电梯在行驶过程中得楼层显示。

    编写一个程序,模拟电梯得功能.功能接口包括电梯上行按钮.下行按钮.楼层选择与电梯在行驶过程中得楼层显示. (1) 由用户选择按上行按钮还就是下行按钮,选择操作后再由用户输入要进入得楼层,进而电梯开始运 ...

  3. java编写一个简单的模拟抽奖程序

    //郑州轻工业大学 //题号:实验一 第四题 //题目: 编写一个简单的模拟抽奖程序(模拟抽奖1.0),抽奖时需要输入5个116的整数号码,每个号码不能重复.程序运行后会随机生成5个116幸运号码,然 ...

  4. java 编写代码_Java 7:如何编写非常快速的Java代码

    java 编写代码 当我第一次写此博客时,我的目的是向您介绍ThreadLocalRandom类,它是Java 7中新增的用于生成随机数的类. 我在一系列微基准测试中分析了ThreadLocalRan ...

  5. java多媒体龟兔赛跑_Java多线程——模拟龟兔赛跑的场景

    题目分析 1. 编写龟兔赛跑多线程程序,设赛跑长度为100米,先完成的一方胜利. 2. 兔子要休眠一段时间,但是跑步速度更快,乌龟不休眠,但是速度慢. 3. 编写兔子和乌龟类 RabbitAndTur ...

  6. java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  7. java环形数组_Java数组模拟环形队列

    1.假溢出 ​系统作为队列用的存储区还没有满,但队列却发生了溢出,我们把这种现象称为"假溢出". 因为队列遵从从队尾存入数据,从队头取数据,所以红框部分的空间就不能继续存入新的数据 ...

  8. 十以内的加减java编写程序_Java实现随机出题,10道10以内加减法计算代码实例

    本文实例为大家分享了Java实现随机出题,10道10以内加减法计算l的具体代码,供大家参考,具体内容如下 package com.swift; import java.awt.Toolkit; imp ...

  9. java 编写异常_Java基础编程之异常处理

    Java异常类是对于程序中可能出现的错误或者异常的一种处理方式.在设计程序的过程中,对于可能出现的异常错误,比如说用户输入错误,设备错误,磁盘满了或者代码错误等等,通常采用异常处理的方式来进行处理可能 ...

  10. java虚拟路由器_Java实现模拟路由功能

    本文实现根据路由表适配最优的号段,选择路由器.选择路由的规则: 1.号段num和网元都不能重复 2.号段num不能重复 3.选择号码适配长度最长的网元为路由目的地 RouterService.java ...

最新文章

  1. Androidx FloatingActionButton 中间图片颜色值修改
  2. 35个设计一流的美味的水果壁纸欣赏
  3. 多解决些问题,少谈些框架和流程
  4. 语言怎么把横的光标变成竖的_想练字,先会学会控笔吧!基础都不牢,怎么练招式?...
  5. 和谐 平等_平等还是认同?
  6. Netcdf对数据进行裁剪
  7. 基于深度学习的眼底影像分析最新综述
  8. 用python绘制叠加等边三角形_python 叠加等边三角形的绘制的实现
  9. java.lang.IllegalStateException: Unable to read meta-data for class 问题的解决
  10. k8s重要概念及部署k8s集群
  11. 中播放*.mid格式及其它格式的音乐
  12. echarts 中国地图设置高亮省份
  13. elasticsearch两年学习资料整理分享
  14. Gitter:高颜值GitHub小程序客户端诞生记
  15. unity warning CS0108: test4.name' hides inherited memberUnityEngine.Object.name’.
  16. LabVIEW——波形图总结
  17. C++基础概念(初步代码示例英石与磅单位互换)
  18. cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用
  19. python重启路由器_Python实现路由器的重启和查看实时流量
  20. 关于实现手机定位,通过服务器,再发送给查询者,或指定人

热门文章

  1. Chef宣布100%开源,要走红帽模式?\n
  2. H3C模拟器ping,tel,ssh配置
  3. 创新高!韩国反垄断部门重罚高通8.54亿美元
  4. 为了分析WebRTC, 重学Windows开发
  5. zoj 3211 - Dream City
  6. 数据库操作:MFC连接与MYSQL
  7. 发现凌晨醒来,可以写出平时写不出来的代码
  8. 可关闭与最小化的右下角浮动广告代码
  9. JavaScript 继承
  10. 网络编程——第一部分