资源简介
模拟三个人排队买票,张某、李某、赵某买电影票、售票员只有3张5元的钱,
电影票5元钱一张。张某拿20元一张的新人民币排在李的钱买票,
李某排在赵的前面拿一张10元的人民币买票,赵某拿一张5元的人民币买票
(课堂作业)
代码片段和文件信息
package 售票问题;
public class TicketHouse implements Runnable{
private int fiveAccount = 3;//售票员只有3张5元
private int tenAccount = 0;//可能收到10元
private int twentyAccount = 0;//可能收到20元
public void run()
{
if(Thread.currentThread().getName().equals(“张某“))
{
saleTicket(20);//张某拿着一张20元
}
else
{
if(Thread.currentThread().getName().equals(“李某“))
{
saleTicket(10);//李某拿着一张10元
}
else
{
if(Thread.currentThread().getName().equals(“赵某“))
{
saleTicket(5);//赵某拿着一张5元
}
}
}
}
public synchronized void saleTicket(int money){
String person = Thread.currentThread().getName();
if(money == 5){//不用找零,不用等待
fiveAccount++;
System.out.println(“卖给“+person+“电影票,无需找零“+“,现有5元“+fiveAccount+“张\n“);
}
else{
if(money == 10){//需找零,可能等待
while(fiveAccount<1){//无法找零时,需等待
try {
System.out.println(“10元,零钱不够,“+person+“需等待“+“现有5元“+fiveAccount+“张\n“);
wait();
System.out.println(person+“继续买票\n“);
}catch(InterruptedException e) {}
}
tenAccount++;
fiveAccount = fiveAccount-1;
System.out.println(“卖给“+person+“电影票,找零5元“+“,现有5元“+fiveAccount+“张\n“);
}
else{
if(money == 20) {//需找零,可能等待
while(fiveAccount<3){//无法找零时,需等待
try {System.out.println(“20元,零钱不够,“+person+“需等待,“+“现有5元“+fiveAccount+“张\n“);
wait();
System.out.println(person+“继续买票\n“);
}catch(InterruptedException e) {}
}
twentyAccount++;
fiveAccount = fiveAccount-3;
System.out.println(“卖给“+person+“电影票,找零15元,“+“现有5元“+fiveAccount+“张\n“);
}
}
}
notifyAll();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-12 20:11 售票问题\
目录 0 2018-04-12 20:11 售票问题\.settings\
文件 598 2018-04-12 20:11 售票问题\.settings\org.eclipse.jdt.core.prefs
目录 0 2018-05-01 17:33 售票问题\bin\
目录 0 2018-05-01 17:33 售票问题\bin\售票问题\
文件 2233 2018-05-01 17:33 售票问题\bin\售票问题\TicketHouse.class
文件 928 2018-05-01 17:33 售票问题\bin\售票问题\Ticketing.class
目录 0 2018-04-13 11:32 售票问题\src\
目录 0 2018-04-13 11:33 售票问题\src\售票问题\
文件 1827 2018-04-13 14:36 售票问题\src\售票问题\TicketHouse.java
文件 714 2018-04-13 16:13 售票问题\src\售票问题\Ticketing.java
文件 301 2018-04-12 20:11 售票问题\.classpath
文件 388 2018-04-12 20:11 售票问题\.project
- 上一篇:护网演习网络安全应急预案.pdf
- 下一篇:基于TP3.1.2的通用网站后台
相关资源
- 强大的完善的 活动抽奖系统适合各单
- 十字路口红绿灯交通情况模拟
- Qt 多线程连接数据库——数据库
- 易语言多线程端口扫描源码
- POSIX多线程程序设计中文版源码
- 易语言md5定向爆破源码
- 多线程扫描工具
- Delphi.High.Performance.Applications.Concurren
- Qt5的多线程小程序,实现按钮开关线
- 控制台串口通信程序
- POSIX多线程程序设计中文版pdf
- 使用多线程及图像分块实现图像处理
- 图像处理中使用多线程及图像分块实
- p2p文件共享系统 含代码和文档
- 武汉理工大学面向对象与多线程综合
- 多线程编程指南[中文完整翻译版] –
- QT多线程实现图片以缩略图形式显示
- qt利用线程实现多任务
- 基于socket的多线程QQ聊天系统(代码
- UDP socket 多线程
- linux多线程编程书籍
- 串口通信+多线程+数据错乱自动恢复
- VC五子棋源代码 想要的速度下哦 多线
- 多核多线程技术 (高清 带书签) (
- Linux多线程编程手册.pdf
- 多线程创建的聊天小软件
- 多线程调用dll
- zw_C多线程进度条源码.zip
- Win32 多线程程序设计(侯捷译) 书和
- listView异步加载多线程和AsyncTask)以及
评论
共有 条评论