一段模拟龟兔赛跑的多线程代码

多线程之龟兔赛跑 多线程之龟兔赛跑: 开启两条线程,乌龟一个, 兔子一个,得出胜利者后线程停止 可以将兔子的线程设置暂停一段时间再跑 阅读详情
原文地址: http://www.java2000.net/p10593
  1. /**
  2.  * 一段模拟龟兔赛跑的多线程代码。<br>
  3.  * 兔子比乌龟快5倍,但休息的时间长10倍。
  4.  * 
  5.  * @author 赵学庆,Java世纪网(java2000.net)
  6.  * 
  7.  */
  8. public class T {

  9.   public static void main(String[] args) {
  10.     TortoiseRace a = new TortoiseRace();
  11.     Thread runner1 = new Thread(a);
  12.     RabbitRace b = new RabbitRace();
  13.     Thread runner2 = new Thread(b);
  14.     runner1.start();
  15.     runner2.start();
  16.     while (ready < 2) {
  17.       try {
  18.         Thread.sleep(1);
  19.       } catch (InterruptedException e) {
  20.         e.printStackTrace();
  21.       }
  22.     }
  23.     synchronized (lock) {
  24.       lock.notifyAll();
  25.     }
  26.   }

  27.   static Object lock = new Object();
  28.   static int ready = 0;
  29. }

  30. class TortoiseRace implements Runnable {
  31.   public void run() {
  32.     synchronized (T.lock) {
  33.       T.ready++;
  34.       try {
  35.         T.lock.wait();
  36.       } catch (InterruptedException e1) {
  37.         e1.printStackTrace();
  38.       }
  39.     }
  40.     int TortoiseDistance = 0;
  41.     for (int i = 0; TortoiseDistance <= 1000; i++) {
  42.       TortoiseDistance++;
  43.       System.out.println("乌龟跑了1米!");
  44.       try {
  45.         Thread.sleep(1);
  46.       } catch (InterruptedException e) {
  47.       }
  48.     }
  49.     System.out.println("乌龟已经跑完了比赛路程!");

  50.   }
  51. }

  52. class RabbitRace implements Runnable {
  53.   public void run() {
  54.     T.ready++;
  55.     synchronized (T.lock) {
  56.       try {
  57.         T.lock.wait();
  58.       } catch (InterruptedException e1) {
  59.         e1.printStackTrace();
  60.       }
  61.     }
  62.     int RabbitDistance = 0;
  63.     for (int j = 0; RabbitDistance <= 1000; j++) {
  64.       RabbitDistance += 5;
  65.       System.out.println("兔子跑了5米!");
  66.       try {
  67.         Thread.sleep(10);
  68.       } catch (InterruptedException e) {
  69.       }
  70.     }
  71.     System.out.println("兔子跑完了比赛路程!");

  72.   }
  73. }

操作系统课设:多线程实现龟兔赛跑 基于MFC实现,有简单的图形界面。主要是多线程以及SLEEP的使用。 立即下载

相关推荐

深空探测处理软件USGS-ISIS的下载安装

深空探测处理软件USGS-ISIS下载安装教程

qq_31721595的博客 3313

多线程模拟一下龟兔赛跑的情景

【代码】多线程模拟一下龟兔赛跑的情景。

m0_65136981的博客 695

DIY便携式PEMF磁脉冲治疗仪:百元成本自制生物物理疗法设备

脉冲电磁场(PEMF)疗法是一种基于生物物理原理的非侵入性技术,它通过特定频率的电磁脉冲作用于细胞层面,影响细胞膜电位和离子通道活动,从而可能调节细胞代谢与功能。其技术价值在于提供了一种物理干预手段,在健康科技和生物黑客领域被探索用于放松、恢复等场景。实现PEMF的核心是通过信号发生与功率放大驱动电磁线圈产生可控磁场。本文以蓝牙音频模块和智能手机App为切入点,详细解析了如何利用低成本电子元件(如DFRobot XY-WRBT模块和漆包线线圈)构建一个可自定义频率的便携式PEMF设备,涵盖了从电路设计、线圈

weixin_31476015的博客 354

CH8-多线程

【案例8-1】 龟兔赛跑 【案例介绍】 1.任务描述 ​ 众所周知的“龟兔赛跑”故事,兔子因为太过自信,比赛中途休息而导致乌龟赢得了比赛.本案例要求编写一个程序模拟龟兔赛跑,乌龟的速度为1米/1500毫秒,兔子的速度为5米/500毫秒,等兔子跑到第700米时选择休息10000毫秒,结果乌龟赢得了比赛。 2.运行结果 运行结果如图8-1所示。 【案例目标】 学会分析”龟兔赛跑”任务实现的逻辑思路。 能够独立完成”龟兔赛跑”程序的源代码编写、编译以及运行。 能够在程序中使用多线程完成逻辑思路。

weixin_46227276的博客 4008

Matlab PolySpace 静态分析实战:从零搭建嵌入式代码安全防线

本文详细介绍了如何使用Matlab PolySpace进行嵌入式代码静态分析,从环境搭建到实战配置,帮助开发者提前发现内存溢出、未初始化变量等潜在缺陷。通过案例分享和进阶技巧,展示如何提升代码安全性和可靠性,特别适合汽车ECU、医疗设备等安全关键系统开发。

weixin_33701617的博客 603

相机光学(三十八)——VCM(Voice Coil Motor)音圈马达

VCM(Voice Coil Motor)音圈马达全称Voice Coil Montor,电子学里面的音圈电机,是马达的一种。因为原理和扬声器类似,所以叫音圈电机,具有高频响、高精度的特点。其主要原理是在一个永久磁场内,通过改变马达内线圈的直流电流大小,来控制弹簧片的拉伸位置,从而带动上下运动。手机摄像头广泛的使用VCM实现自动对焦功能,通过VCM可以调节镜头的位置,呈现清晰的图像。弹片式结构滚珠式结构摩擦式结构Open loop开马达Close loop闭环马达。

图像学习之旅 7224

Java多线程--模拟龟兔赛跑

在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。(2)在Thread类有Thread.sleep()方法,来控制兔子的睡眠时间,可以尝试使用不同的睡眠时间来让乌龟赢还是兔子赢。System.out.println("兔子跑完" + i + "米");System.out.println("乌龟跑完"+i+"米");System.out.println("我的线程...");

2301_76890677的博客 1831

基于Simulink的电动汽车电池管理系统热管理优化仿真

电动汽车电池管理系统(Battery Management System, BMS)中的热管理是确保电池性能、安全性和寿命的关键环节。温度过高或过低都会显著影响电池的工作效率和寿命,因此需要对电池组进行精确的热管理。基于MATLAB/Simulink的仿真平台可以用于建模和优化电池热管理系统,包括热分布预测、冷却策略设计以及热平衡控制等。本项目旨在构建一个完整的电动汽车电池热管理优化仿真模型,并通过仿真验证系统的性能。

xiaoheshang_123的博客 462

利用多线程写一个龟兔赛跑游戏

大致思路:1.利用swing创建窗口,开始按钮,复原按钮,乌龟图片、兔子图片2.点击开始进行游戏,再次点击暂停游戏,再次点击继续游戏,点击复原按钮回到起点2.获取到兔子和乌龟的x坐标,创建两个线程每次加0~5随机,每加完一次休眠0~500毫秒3.当有其中一个到达终点时,停止游戏,点击复原再点击开始可以再次开始创建窗口代码如下: 代码也很好理解,主要是开始按钮这里:继续游戏方法: 暂停游戏方法...

qx020814的博客 2573

PCL 八叉树的使用

八叉树(Octree)是一种空间划分的数据结构,广泛应用于三维点云的处理和分析。八叉树通过将空间递归地划分为八个子区域,可以有效地组织和索引三维点数据,提升点云的查询、降采样和配准等操作的效率。

纵马踏花向自由 1659

【物联网】基于LORA组网的远程环境监测系统设计(ThingsCloud云平台版)_资料编号34

实现一主多从的LORA组网远程通信,主机和两个从机都配备了STM32F103单片机与 LoRa 模块,主机作为中心设备及WIFI网关,负责接收和发送数据到远程物联网平台和手机APP,两个从机则负责采集数据并通过各自的 LoRa组网将数据发送给主机。

嵌入式阿齐Archie 1万+

龟兔赛跑(Runnable接口实现)

//模拟归途赛跑 public class Race implements Runnable { //胜利者 private static String winner; @Override public void run() { for (int i = 0; i <= 100; i++) { //模拟兔子休息 if ("兔子".equals(Thread.currentThread().getNam

weixin_45637920的博客 1007

【Bug已解决】openclaw max turns reached / Tool calls exceeded limit — OpenClaw 最大轮次超限解决方案

OpenClaw 在执行过程中达到最大轮次限制任务未完成,本质是 --max-turns 设置过小或任务过于复杂。文中给出增加轮次、--continue 继续、分步执行等完整方案。

一键难忘的博客 5505

一段模拟龟兔赛跑的多线程程序

/**   * 一段模拟龟兔赛跑的多线程程序。  * 兔子比乌龟快5倍,但休息的时间长10倍。   *    * @author 赵学庆,Java世纪网(java2000.net)   *    */  public class T {       public static void main(String[] args) {       TortoiseRace a = new Tortois...

xiushan的专栏 1325

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java多线程——模拟龟兔赛跑的场景

题目分析 1. 编写龟兔赛跑多线程程序,设赛跑长度为100米,先完成的一方胜利。 2. 兔子要休眠一段时间,但是跑步速度更快,乌龟不休眠,但是速度慢. 3. 编写兔子和乌龟类 RabbitAndTurtle继承Thread.然后编写逻辑. 4. 使用Thread的sleep(long milis)方法使线程休眠来控制兔子休眠时间. 5. 用Math.random()方法或setPrior...

Kluadias的博客 4335

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Python使用matplotlib可视化模拟龟兔赛跑折线图

可视化模拟龟兔赛跑折线图 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = 'simhei' plt.rcParams['axes.unicode_minus']=False #时间轴 t = np.arange(0,120,0.5) # np.piecewise(array,[condition1,condition2],[value1,value2]) # 即:传入一个a

许粤军的博客 4241

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

题目分析1. 编写龟兔赛跑多线程程序,设赛跑长度为100米,先完成的一方胜利。2. 兔子要休眠一段时间,但是跑步速度更快,乌龟不休眠,但是速度慢.3. 编写兔子和乌龟类 RabbitAndTurtle继承Thread.然后编写逻辑.4. 使用Thread的sleep(long milis)方法使线程休眠来控制兔子休眠时间.5. 用Math.random()方法或setPriority控制双方线优先...

weixin_36353849的博客 750

【Java代码】多线程案例-龟兔赛跑

用java实现以下要求,编写一个程序模拟龟兔赛跑,乌龟的速度为1米/1000毫秒。兔子的速度为1.2米/1000毫秒。

SHW9HUIOFBAJKF的博客 2505

练习:PTA-7-22 龟兔赛跑 (20 分)【模拟】

题目链接:7-22 龟兔赛跑 (20 分) 思路:需要两个距离变量Dtui,Dgui分别记录龟兔走过的时间,还需要时间变量t记录总的时间变化,另外还需要一个兔子的时间变量t1,来与总的时间变量做比较,兔子的休息与否可以用bool定义一个rest #include<iostream> using namespace std; int main() { int T,t=0,t1=0;...

匿名攻城狮 2470

试题 基础练习 龟兔赛跑预测 java代码

试题 基础练习 龟兔赛跑预测 java代码 import java.util.Scanner; public class Rabbit_tortoise { public static void main(String[] args) { // TODO 自动生成的方法存根 //【兔子和乌龟】 Scanner sc = new Scanner(System.in); //...

qq_43530597的博客 498

龟兔赛跑的小游戏

下面这段代码模拟了龟兔赛跑爬山的情况,其中有个时钟触发设置每秒执行一次循环,乌龟的规则是:50% 的机会快走(右移三格);20% 的机会下滑(左移六格);30% 的机会慢走(右移一格). 兔子的规则是:20% 的机会睡觉(不移动);20% 的机会大跳(右移九格);10% 的机会大滑(左移十二格);30% 的机会小跳(右移一格);20% 的机会小滑(左移两格). 其中最先走到整 70 格的胜利,超过

流男@水孩 1594
上一篇: 快速搜索JDK的API中的类和方法
下一篇: 大话为啥IBM的JAVA开发工具叫Eclipse?
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值