黑马程序员技术交流社区
标题:
一道入学测试题
[打印本页]
作者:
446111220
时间:
2015-1-10 11:07
标题:
一道入学测试题
编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。
但是首先前提是有一个Test类 这就让我很头疼 因为这样一共需要4个类 求大神帮下忙给个思路啊
作者:
潘耿威
时间:
2015-1-10 14:09
Test类和你上面三个类不属于同一级别,Test类有专门的处理机制,我记得好像有个testunit之类的玩意,你上面的三个类注意下线程同步和锁定,没什么其他要注意的!
作者:
bluebloodant
时间:
2015-1-10 15:06
这是ios吗?什么叫先有一个test类
作者:
xiao飞
时间:
2015-1-10 16:35
这道题 我看到别人分享的有啊
作者:
鹰击长空168
时间:
2015-1-10 21:59
老毕视频里不是有类似的售票程序吗
作者:
当我遇上你
时间:
2015-1-11 02:45
我是这么写的,你参考下
public class Test7 {
public static void main(String[] args) {
//创建SealWindow对象
SealWindow sw=new SealWindow();
//创建并开启四个线程
new Thread(sw,"窗口一").start();
new Thread(sw,"窗口二").start();
new Thread(sw,"窗口三").start();
new Thread(sw,"窗口四").start();
}
}
//模拟售票中心功能属性
class TicketSealCenter
{
//售票中心唯一,单例设计
private static TicketSealCenter instance=new TicketSealCenter();
TicketSealCenter(){}
public static TicketSealCenter getInstance()
{
return instance;
}
//售票中心具有统一发票功能
private Ticket ticket=new Ticket();
public int getTickets()
{
return ticket.generateTickets();
}
}
//模拟售票窗口,由于是几个窗口同时买票,多线程对象应该是窗口
class SealWindow implements Runnable
{
//获取售票中心发放的火车票
private int tickets=TicketSealCenter.getInstance().getTickets();
//定义任意一个对象,并做同步代码块的锁
Object lock=new Object();
public void run()
{
while(true)
{
//定义同步代码块
synchronized(lock)
{
//经过的线程休眠10s
try
{
Thread.sleep(10);
}
catch (Exception e)
{
e.printStackTrace();
}
//输出售票信息
if(tickets>0)
{
System.out.println(Thread.currentThread().getName()+"正在发售第"+tickets--+"张票");
}
else
{
break;
}
}
}
}
}
//模拟火车票应有属性及方法
class Ticket
{
//车票的属性有车厢号和座位号,num1代表车厢号,num2代表座位号
int num1=1;
int num2=100;
public String getMessage()
{
return "车厢号:"+num1+"座位号:"+num2;
}
public int generateTickets()
{
return num2;
}
}
复制代码
作者:
史磊
时间:
2015-1-11 19:41
好像见过,定义几个类啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2