您的位置:首页 > 其它

火车票系统模拟

2017-11-25 13:23 225 查看

火车票购票系统模拟

package xiao;

public class XXiao {

public static void main(String[] args) {
// TODO 自动生成的方法存根

ThreadSellTciket sTicket=new ThreadSellTciket();                //创建属于类ThreadSellTciket的对象sTicket。
new Thread(sTicket).start();                            //创建3个同优先级的线程。
new Thread(sTicket).start();
new Thread(sTicket).start();
}
}
class ThreadSellTciket implements Runnable{                    //创建类ThreadSellTciket,实现接口Runnable。
private int tickets=10;
boolean flag=true;
public void run(){                                             //重写方法run(),在方法run()中调用方法sale()。
while(flag){
sale();
}
}
synchronized public void sale(){                             //创建同步方法sale()。
if(tickets>0){                                             //各个售票线程对10张车票共同进行售票。
try{
Thread.sleep(100);
}
catch(Exception e){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"正在卖票:"+tickets);
tickets--;
}
else{
flag=false;             //如果车票售完,则将标识符flag的值设置为false,此时方法run()的循环条件不满足,从而结束方法run(),即结束线程。
}
}
}


运行结果:



知识点:

1)资源冲突。

2)对象锁。

3)线程间的同步控制。

4)线程组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: