编写Java程序,跑道长 50m,模拟 3 名学生同时在跑道跑步的场景 3名同学相当于3个线程对象

简介: 编写Java程序,跑道长 50m,模拟 3 名学生同时在跑道跑步的场景 3名同学相当于3个线程对象

需求说明:


跑道长 50m,模拟 3 名学生同时在跑道跑步的场景 3名同学相当于3个线程对象


14.png


实现思路:

创建 Java 项目,在项目中创建StudentRunning类,该类继承 Thread 类

重写 StudentRunning类的 run() 方法,实现模拟变量自增 在类中定义 String 类型的变量 name,用来保存学生的姓名

在类中定义有参构造方法,目的通过构造方法给实例变量 name赋值

在 StudentRunning 类的 main() 方法内,使用有参构造方法创建 3 个线程对象,实参 name 的值即 3 名学生的姓名

依次调用 3 条线程的 start() 方法,启动线程


实现代码:


方法一:

public class StudentRuning extends Thread {
  //创建构造方法,变量用来保存名字
  private String name;
  public StudentRuning(String name) {
    super(name);
    this.name = name;
  }
  @Override
  public void run() {
    super.run();
    for (int i = 0; i < 50; i++) {
      System.out.println(this.name+"同学跑了"+i+"米");
    }
  }
  //创建三条进程并启动
  public static void main(String[] args) {
    new StudentRuning("小明").start();
    new StudentRuning("小安").start();
    new StudentRuning("小春").start();
  }
}


方法二:


public class StudentRuning extends Thread {
  @Override
  public void run() {
    super.run();
    for (int i = 1; i <= 50; i++) {
      System.out.println(this.getName()+"同学跑了"+i+"米");
    }
  }
  //创建三条进程并启动
  public static void main(String[] args) {
    StudentRuning s1 = new StudentRuning();
    s1.setName("小明");
    s1.start();
    StudentRuning s2 = new StudentRuning();
    s2.setName("大牛");
    s2.start();
    StudentRuning s3 = new StudentRuning();
    s3.setName("老王");
    s3.start();
  }
}
相关文章
|
6月前
|
设计模式 网络协议 数据可视化
Java 设计模式之状态模式:让对象的行为随状态优雅变化
状态模式通过封装对象的状态,使行为随状态变化而改变。以订单为例,将待支付、已支付等状态独立成类,消除冗长条件判断,提升代码可维护性与扩展性,适用于状态多、转换复杂的场景。
859 157
|
6月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
311 1
|
6月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
319 1
|
6月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
372 98
|
7月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
7月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
1706 0
|
7月前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
1237 1
Java 数据库 Spring
299 0
|
7月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
273 0