java_简单的售票系统
2015-07-14 10:16
489 查看
通过对多线程的学习,模拟了一个简单的售票系统
class Ticket implements Runnable
{
private int tick=TicketSealCenter.num;
Object obj = new Object();
public void run()
{
while(true)
{
synchronized(obj)
{
if(tick>0)
{
String name = Thread.currentThread().getName();
int windows = Integer.parseInt(name.substring(7, name.length()));
try{Thread.sleep(100);}catch(Exception e){}
System.out.println("第"+(windows+1)+"窗口卖出了第"+tick--+"张票");
}
}
}
}
}
//售票窗口通过for循环控制窗口数量
class SealWindow
{
public static void addWindow()
{
Ticket t = new Ticket();
for(int x=1;x<=4;x++)
{
Thread t1 = new Thread(t);
t1.start();
}
}
}
//售票中心控制票数
class TicketSealCenter
{
public static int num=100;
}
public class ThreadDemo2
{
public static void main(String[] args)
{
SealWindow.addWindow();
}
}
class Ticket implements Runnable
{
private int tick=TicketSealCenter.num;
Object obj = new Object();
public void run()
{
while(true)
{
synchronized(obj)
{
if(tick>0)
{
String name = Thread.currentThread().getName();
int windows = Integer.parseInt(name.substring(7, name.length()));
try{Thread.sleep(100);}catch(Exception e){}
System.out.println("第"+(windows+1)+"窗口卖出了第"+tick--+"张票");
}
}
}
}
}
//售票窗口通过for循环控制窗口数量
class SealWindow
{
public static void addWindow()
{
Ticket t = new Ticket();
for(int x=1;x<=4;x++)
{
Thread t1 = new Thread(t);
t1.start();
}
}
}
//售票中心控制票数
class TicketSealCenter
{
public static int num=100;
}
public class ThreadDemo2
{
public static void main(String[] args)
{
SealWindow.addWindow();
}
}
相关文章推荐
- 一步一步JavaEE
- 【JavaWeb】(6)Servlet
- SpringMVC实战(三种映射处理器)
- struts jxl导出Excel
- java 异常处理机制及说明。
- 【Java】检查二叉树是否平衡。
- java 异常处理机制
- Java报表工具
- java多线程两种实现方式
- Java入门常见问题
- 关于json-lib将mysql中的date(time)转换成json对象出现java.sql.time not gethours问题
- Java StuNote 1
- struts2学习笔记(7)---数据验证之validateXxx()方法
- java将类写入二进制文件(系列化类)
- eclipse luna 安装EMF插件
- JAVA的RSA加密算法工具类
- SpringMVC第一个实例
- 【Java语言基础】数据类型详解
- JAVA 连接数据库
- Java设计模式(三)原型模型 适配器型号