文章目录

  • 1. 需求说明
  • 2.思路分析
  • 3.代码实现
    • 3.1.创建Runnable接口的类,定义属性总长
    • 3.2.重写run()方法:
    • 3.3.增加跑步方法go():
    • 3.4.创建测试类
    • 3.5运行结果

1. 需求说明

多人参加1000米接力跑
每人跑100米,换下个选手
每跑10米显示信息

2.思路分析

1.多人接力跑1000米
2.每跑100米换人
3.每次只能有一个人跑:使用线程同步方法
4.多人多线程,共跑1000米(多线程共用一个资源)

3.代码实现

3.1.创建Runnable接口的类,定义属性总长

public class jieliRun implements Runnable {private boolean flag=false;private int length = 1000;//总长

3.2.重写run()方法:

@Overridepublic synchronized void run() {while (!flag) {go();//运行跑步方法length-=100;//每个人(线程)跑完总长减去100if(length==0){System.out.println("跑完接力赛");flag=true;break;}try {Thread.sleep(500);//每跑10米时间(线程睡眠0.5秒)} catch (InterruptedException e) {e.printStackTrace();}return;//一个线程跑完}}

3.3.增加跑步方法go():

public synchronized void go(){System.out.println(Thread.currentThread().getName()+"拿到接力棒");//选手(线程)拿到接力棒(开始运行)for (int i=10;i<=100;i+=10){System.out.println(Thread.currentThread().getName()+"跑"+i+"米");//每10米输出一次信息}}

3.4.创建测试类

public class jieliRunTest {public static void main(String[] args) {jieliRun jl = new jieliRun();for(int i=1;i<=10;i++){new Thread(jl,i+"号选手").start();}}
}

3.5运行结果

JAVA多线程模拟1000米接力赛跑相关推荐

  1. java多线程模拟龟兔赛跑,JAVA多线程模拟龟兔赛跑

    JAVA多线程模拟龟兔赛跑! class Rabbit extends Thread{ Tortoise tor; int Journey; int RabbitSpeed; public Rabbi ...

  2. Java多线程 模拟 购买 退订 机票

     Java多线程 模拟 购买 退订 机票 package cn.com.cloud.sea.thread; /*** @author HenryLee* @version 1.0* 买票*/ publ ...

  3. Java多线程模拟售票系统

    Java创建多线程的两种基本方法: 方法1.继承Thread类 (1)定义子类,继承Thread类,重写该类的run()方法作为线程执行体; (2)创建该子类的实例作为线程对象; (3)调用线程对象的 ...

  4. java多线程模拟购买火车票

    java多线程模拟购买火车票 本次做的是一个火车票的售卖模拟,不管用户是在窗口还是APP上购买,必然不可能买到同一张票这也就是说一张票的售卖必然是一个线程在操作的,所以,我们在写代码是也要注意这一点 ...

  5. 利用JAVA多线程模拟售票系统,对统一资源进行处理

    首先多线程处理统一资源的方式有两种 分别介绍一下两者的区别 synchronized与Lock的区别 1.Lock不是Java语言内置的,synchronized是Java语言的关键字 2.synch ...

  6. Java多线程模拟加工厂加工玩具

    创建工厂类, 属性包括:车间类的对象的集合,仓库容量 方法包括: 1. 加工玩具的方法(product),方法的功能是各个车间同时工作.根据仓库容量平均分配给各个车间需要加工玩具的数量.2. 建造玩具 ...

  7. Java 多线程 模拟银行ATM实时存取钱

    近期想回顾一些知识: 一.Java 多线程 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.多线程是多任务的一种特别的形式,但多线程使用了更小的资源开 ...

  8. Java多线程 模拟售票窗口售票

    编写一个Java 多线程程序,完成三个售票窗口同时出售20张票 程序分析: 1.票数要使用同一个静态值: 2.为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: 创建一个站台类Stat ...

  9. Java多线程模拟运动比赛

    Java的并发包中有各种并发类,今天通过这个例子来熟悉使用CyclicBarrier类. CyclicBarrier类就像一个起跑线,定义了赛道的大小,当所有运动员(多线程)同时在起跑线, 那么Cyc ...

最新文章

  1. Postfix用户收发控制
  2. Django部署前准备
  3. 追剧计划第三弹!UC Berkeley出品,全栈深度学习!
  4. php5.6 xdebug 配置,php5.5+apache2.4+mysql5.6+xdebug配置
  5. Android NDK: WARNING: Ignoring unknown import directory:错误解决方法
  6. autosar架构详细介绍_干货|非常详细的 Ceph 介绍、原理、架构
  7. 理财子公司成长的烦恼
  8. 职称计算机考试excel内容,2020年职称计算机考试EXCEL试题练习
  9. Java实现多文档文本编辑器
  10. 零基础学编程的我的心路历程
  11. wince 德赛西威2413_德赛西威NAV262大众全系通用DVD导航产品介绍
  12. windows10_小屏幕显示不可调整的大窗口(老软件)/widows字体大小调整
  13. MAC系统下解决Teamviewer 是商业用途只能连5分钟的问题--修改Teamviewer的id
  14. linux 浏览器崩溃,Firefox DoS漏洞导致浏览器崩溃 影响到Windows操作系统
  15. 好玩的centos代码简介()
  16. 洛谷日报 2020年3月前索引
  17. 连咖啡:新零售时代中的娱乐“生意经” | 一点财经
  18. 【spine】spine 简介
  19. 6-7 十进制转换二进制 (15分)
  20. 关于如何使用动态域名在个人电脑搭建个人网站的几点经验

热门文章

  1. AMD连发四款OpenCL加速计算开发工具
  2. 只说林冲就床上放了 瑞星免费杀毒软件
  3. 什么是CN2线路?什么是美国CN2服务器?
  4. Flexslider - 响应式的 jQuery 内容滚动插件
  5. KTV主机服务器系统,ktv总服务器主机
  6. 双麦降噪回音消除芯片-NR2047技术讲解和测试视频
  7. 【PyTorch】RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling cublasSgemm()
  8. 数据挖掘中的十个著名算法
  9. 《单元测试的艺术》学习笔记
  10. ASO优化:Google Play的关键词ASO优化