题目详情

龟兔赛跑的故事大家都听过,请采用线程的知识,编写代码作比较。

具体要求如下:

1、乌龟和兔子各自一个线程。

2、乌龟每步跑1厘米,兔子每步跳100厘米。

3、兔子每跑到第100步的时候,会休息0.001秒;

4、问:50000厘米比赛谁获胜?

题目分析

这套题考查的是多线程的知识,包括线程创建,线程睡眠等。这道题目貌似是迅雷校园招聘的机试题。创建两个线程,分别是乌龟线程(TortoiseThread)和兔子(RabitThread)线程,计算跑50000 cm用的时间长度。

类设计和实现

RabitThread.java类

package com.mashen.tortoise;

public class RabitThread extends Thread {

int distance;

public RabitThread(String name,int distance) {

super(name);

this.distance=distance;

}

@Override

public void run() {

long startTime=System.currentTimeMillis();

int i=1;

while (i<=distance) {

try {

//每经过100步再休息一小会

if(distance%100==0){

Thread.sleep(1);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

//步长是100cm

i=i+100;

}

long endTime=System.currentTimeMillis();

System.out.println(getName()+"奔跑"+distance+"cm共耗时:"+(endTime-startTime)+"毫秒");

}

}

TortoiseThread.java类

package com.mashen.tortoise;

public class TortoiseThread extends Thread {

int distance;

public TortoiseThread(String name,int distance) {

super(name);

this.distance=distance;

}

@Override

public void run() {

long startTime=System.currentTimeMillis();

int i=1;

while (i<=distance) {

i++;

}

long endTime=System.currentTimeMillis();

System.out.println(getName()+"奔跑"+distance+"cm共耗时:"+(endTime-startTime)+"毫秒");

}

}

用于测试的类RunTest.java

package com.mashen.tortoise;

public class RunTest {

public static void main(String[] args) {

int distance=50000;

RabitThread bt=new RabitThread("小兔子",distance);

TortoiseThread tt=new TortoiseThread("小乌龟", distance);

bt.start();

tt.start();

}

}

运行结果如下:

龟兔赛跑的问题大家都耳熟能详了,小兔子因为骄傲而输掉了比赛,小乌龟因为坚持不懈而夺得了胜利。我们学习也是这样,现在困难重重,时间也不好安排,哪怕每天抽出一丁点时间来写写代码,十行,二十行都行,坚持下来,日后会豁然开朗。只有坚持不懈才能最后走向成功!共勉!工作生活亦如此!

java写龟兔赛跑_[阶段一]java编程比赛-龟兔赛跑相关推荐

  1. 用java写七夕_一位JAVA程序员的七夕情书

    薇薇老师献给java程序员一封现成的情书,绝对高大上,七夕成员的礼物也要任性哦~ 我能抽象出整个世界... 但是我却不能抽象出你... 你肯定是一个单例,因为你是那样的独一无二... 所以我的世界并不 ...

  2. java 同步锁_死磕 java同步系列之自己动手写一个锁Lock

    问题 (1)自己动手写一个锁需要哪些知识? (2)自己动手写一个锁到底有多简单? (3)自己能不能写出来一个完美的锁? 简介 本篇文章的目标一是自己动手写一个锁,这个锁的功能很简单,能进行正常的加锁. ...

  3. java 字符串乱码_这份Java面试题含答案解析竟然真的让你不用在面试上“如履薄冰”...

    面试题集共分为以下十部分: 一.Core Java: 1 - 95 题1 - 24 页 基础及语法: 1 - 61 题1 - 13 页 异常: 62 - 69 题13 - 15 页 集合: 70 - ...

  4. java nio 框架_几种Java NIO框架的比较(zz)

    问题:生活中工作中,会有人问我javaNIO框架里面 Netty Mina  xSocket Grizzly 等等哪个比较好? 在这里写一下自己的感受,也算是总结一下吧 在我的印象中.不管是什么NIO ...

  5. 马士兵 java 学习笔记_马士兵java教程笔记1

    ---恢复内容开始--- 前记 虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master 标识符 标识符是由字母 ...

  6. A002、java环境搭建_第一个java程序

    目录 1.内容介绍 2.软件开发概述 2.1 软件开发概念 2.2 软件开发示例 2.3 软件开发语言 2.3.1 计算机语言概述 2.3.2 计算机语言分类 2.4 小结 3.Java概述 3.1 ...

  7. java native 原理_一种Java+Native应用的系统架构的制作方法

    本发明涉及智能卡技术领域,特别是要求支持Java功能的智能卡领域. 背景技术: Java卡是Sun微系统为智能卡开发平台而制定的一个开放的标准.使用Java卡平台创建的智能卡上存有Java apple ...

  8. 新手java安装教程_新手安装Java开发工具图文教程

    类型:编程工具大小:403.4M语言:英文 评分:7.1 标签: 立即下载 写这些文字的目的是为了给像我一样的想学习Java的非计算机专业的人员提供一个简单明了和快速安装Java的方法,这里提到的可能 ...

  9. 哈尔滨java开发工资_给哈尔滨Java开发初学者的几个学习建议

    对于初学者应该如何学习Java开发技术,纵观中国目前整体行业来说,互联网IT行业成为了拔尖的行业,IT互联网程序开发成了靠自己能力可以多挣一点钱,所以各个行业都在转行,其实互联网不存在饱和,只不过大多 ...

最新文章

  1. pycharm如何执行高级撤销操作回到历史
  2. 聊聊高并发(五)理解缓存一致性协议以及对并发编程的影响
  3. mysql查询今天_昨天_7天_近30天_本月_上一月 数据_(转载)mysql查询今天、昨天、7天、近30天、本月、上一月数据...
  4. 談JS面向對象【靜態與非靜態類】
  5. ApacheCN 深度学习译文集 20201229 更新
  6. python函数参数类型及其顺序
  7. 思科交换技术之vlan
  8. 信息系统项目管理通关指南
  9. 20 岁 Google vs 18 岁百度,分道扬镳?| 畅言
  10. php集成square功能(使用square/connect)
  11. google guava Joiner 示列
  12. iphone图片编辑画笔_iOS13图片编辑功能使用教程
  13. noip2018秃页记
  14. dwf怎么合成一个_油菜素内酯合成基因DWF1、DET2影响毛白杨木质部形成
  15. CVPR 2022 | 百变发型!中科大/微软/港城大提出HairCLIP:基于文本和参考图像的头发编辑方法...
  16. 王者荣耀最低战力查询-王者战区修改
  17. Weakly Supervised Video Salient Object Detection
  18. 判断用户输入的数是正数还是负数
  19. Spring security 学习 (自助者,天助之!)
  20. 微信公众号最佳实践 ( 3.2) 被动回复用户消息

热门文章

  1. shchangenotifyregister 监视子文件夹文件改变_有哪些神器能自动整理电脑文件?
  2. mqtt 发送消息过多_eclipse mqttclient 性能MQTT(32202): 正在发布过多的消息
  3. FishNet网络结构阅读笔记
  4. 静态网页通过Nginx部署到阿里云服务器
  5. 继“换帅”之后,通用电气又将出售智能平台业务
  6. 禅道设置bug模板_禅道项目管理软件bug过滤剧本
  7. 量化交易系统 python源码_零起点TensorFlow与量化交易[PDF+源码][238.77MB]
  8. 《超级处理器》介绍及下载
  9. CVPR2020目标跟踪,共33篇
  10. revit版本linux,revit系列号2021版本的是什么?在哪里可以下载revit2021?