美文网首页Java
编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3

编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3

作者: Java斗帝之路 | 来源:发表于2020-09-29 16:22 被阅读0次

需求说明:

车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程,要求使用同步方法保证售票过程中票数的正确性

实现思路:

创建 Java 项目,在项目中创建 SellTicketBySync 类,并实现 Runnable 接口

定义 int 类型的变量 ticket,表示剩余的车票数量,ticket 初始值为 50

创建同步方法 sellTicket()。在该方法体内,判断 ticket 的值是否大于 0。如果 ticket 的值大于 0,则调用Thread.sleep(long mills) 方法,让线程休眠 50 毫秒,并打印出当前窗口的售票情况

重写 run() 方法。在 run() 方法内,定义一个 while 死循环。在循环体内,判断变量 ticket 是否大于 0,如果 ticket 大于 0,调用 sellTicket() 方法。如果 ticket 小于等于 0,则结束循环

编写测试类,使用 new Thread(Runnable target,String name) 构造方法,创建 3 条线程,参数 target的值为 runnableInstance,指定窗口名称并赋值给参数 name。调用 3 个线程对象的 start() 方法,依次启动 3条线程

实现代码:

publicclassSellTicketBySyncimplementsRunnable{

privateintticket =50;//剩余的票数

//重写run方法

@Override

publicvoidrun(){

while(true) {

if(this.ticket >0) {

SellTicket();

}else{

break;

}

}

}

publicsynchronizedvoidSellTicket(){

if(ticket >0) {

try{

//线程休眠50毫秒

Thread.sleep(50);

System.out.println(Thread.currentThread().getName()+"出售第"+ticket--+"张车票");

}catch(InterruptedException e) {

e.printStackTrace();

}

}

}

publicstaticvoidmain(String[] args){

//创建一个Runnable实例

SellTicketBySync sellTicketBySync =newSellTicketBySync();

//创建3条线程,并为3条线程指定名称

Thread thread01 =newThread(sellTicketBySync,"窗口1");

Thread thread02 =newThread(sellTicketBySync,"窗口2");

Thread thread03 =newThread(sellTicketBySync,"窗口3");

thread01.start();

thread02.start();

thread03.start();

}

}

相关文章

  • 编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3

    需求说明: 车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程,要求使用同步方法保证...

  • 一次脑袋一热的出行

    2019年3月31号,我订了一张从宁波到南昌的车票,觉得高铁太贵,所以买了张普快,下午13:50出发,到第二...

  • 回乡旅途

    早上9点11分的火车,到武汉,然后转到家乡的小站,中转间隔时间50分钟。这是我的计划。 在成都车站把两段所有的车票...

  • Java的开发流程

    Java的程序开发,包括三个步骤:编写程序,编译程序,运行程序 编写程序——java源代码,.java文件 编译程...

  • 第六章 数据并行化

    在Java8中,编写并行化的程序很容易。从外部迭代到内部迭代的过程,让编写简洁的代码更加容易,也让程序员不需要手动...

  • 小白学java

    目录 1、配置java 环境2、java代码规范3、java笔记4、java程序编写 配置java环境 1、下载j...

  • 《JNI开发——Java与C之间的桥梁 二》

    用java 语言编写的程序能否调用C语言编写的程序类库呢? 同样 C(程序)能否调用 java语言编写的api呢?...

  • 大学最后几个月的成长

    1、 买了晚上8点去北京的火车票,7点半从学校赶到火车站。到了候车室才发现,火车晚点4个小时零3分,也就是到晚上十...

  • java学习之7/22(编程HelloWorld程序)

    编程helloworld程序 1. java程序编写过程 a. 编写源文件> [HelloWorld.java]...

  • 青岛,初见

    从决定端午节来青岛这座城市旅行,到用刷出两张通往幸福(青岛)的火车票,再到刷出两张通往自由(北京)的火车票……出发...

网友评论

    本文标题:编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3

    本文链接:https://www.haomeiwen.com/subject/kemeuktx.html