编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程

简介: 编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程

需求说明:


车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程


15.png


实现思路:


创建SellTicket类实现 Runnable 接口,定义实例变量ticket赋值50,重写run方法

在run方法内,定义while 死循环。在循环体中,调用 Thread 类的静态方法

Thread.currentThread().getName() 获取当前运行线程的名称 ,打印线程名称和ticket变量值,然后让 ticket 自减。当 ticket 小于等于 0 时,结束循环

在测试类的 main() 方法内,创建SellTicket类实例一个

使用 new Thread(Runnable target) 构造方法开辟 3 条线程,并将 Runnable 实例 sellTicket 传给形参target

依次调用 3 个 Thread 类对象的 start() 方法,启动线程


实现代码:


16.png


使用Runnable解决:https://blog.csdn.net/weixin_44893902/article/details/108815711


while循环实现:


//SellTicket售票处类实现 Runnable 接口
public class SellTicket implements Runnable {
  int ticket = 50;// 剩余票数
  @Override
  public void run() {
    //while循环实现
      while (true) { 
        if (ticket<1) { 
          break; 
        } else {
         System.out.println(Thread.currentThread().getName()+"出售第"+ticket--+"张车票"); 
        }
      }
  }
  public static void main(String[] args) {
    SellTicket sellTicket = new SellTicket();
    Thread thread1 = new Thread(sellTicket);
    thread1.setName("窗口1");
    thread1.start();
    Thread thread2 = new Thread(sellTicket);
    thread2.setName("窗口2");
    thread2.start();
    Thread thread3 = new Thread(sellTicket);
    thread3.setName("窗口3");
    thread3.start();
  }
}


for循环实现:


//for循环实现
for (; ticket > 0; ticket--) {
  System.out.println(Thread.currentThread().getName()+"出售第"+ticket+"张车票"); 
  if(ticket==0) { 
    break; 
  } 
}
相关文章
|
1月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
利用java8 的 CompletableFuture 优化 Flink 程序
|
23天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
31 4
|
1月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
49 2
|
1月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
101 1
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
40 1
|
1月前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
30 0
|
1月前
|
消息中间件 NoSQL Java
Flink-06 Flink Java 3分钟上手 滚动窗口 时间驱动 Kafka TumblingWindow TimeWindowFunction TumblingProcessing
Flink-06 Flink Java 3分钟上手 滚动窗口 时间驱动 Kafka TumblingWindow TimeWindowFunction TumblingProcessing
39 0
|
1月前
|
Java
java的程序记录时间
java的程序记录时间
26 0
|
6月前
|
算法 Java 数据处理
Java程序性能优化研究
Java程序性能优化研究
60 0
|
6月前
|
缓存 监控 算法
Java程序性能优化策略与实践
在当今软件开发领域,Java作为一种广泛应用的编程语言,其程序性能优化显得尤为重要。本文将介绍一些Java程序性能优化的策略和实践,帮助开发者提高代码执行效率、减少资源消耗,并优化用户体验。通过深入探讨各种优化技术和工具,读者将能够更好地理解和运用这些策略,有效提升Java应用程序的性能。
42 1
下一篇
无影云桌面