完成火车站售票程序的模拟。

要求:

(1)总票数1000张;

(2)10个窗口同时开始卖票;

(3)卖票过程延时1秒钟;

(4)不能出现一票多卖或卖出负数号票的情况。

 class MyThread implements Runnable{

     private int ticket = 1000;

     public void run() {

         for(int i=0;i<1000;i++) {

             synchronized(this) {
                 if(ticket>0) {
                     try {
                         Thread.sleep(0);
                     } catch (InterruptedException e) {
                         e.printStackTrace();
                     }
                     System.out.println(Thread.currentThread().getName()+" 已售出一张  剩余票数"+ticket--);
                 }
                 if(ticket==0) {
                     System.out.println(Thread.currentThread().getName()+"  余票不足");
                     break;
                 }
             }
         }
     }
}
public class maipiao {
    public static void main(String[] args) {
        MyThread my = new MyThread();
        Thread t1=new Thread(my,"窗口1");
        Thread t2=new Thread(my,"窗口2");
        Thread t3=new Thread(my,"窗口3");
        Thread t4=new Thread(my,"窗口4");
        Thread t5=new Thread(my,"窗口5");
        Thread t6=new Thread(my,"窗口6");
        Thread t7=new Thread(my,"窗口7");
        Thread t8=new Thread(my,"窗口8");
        Thread t9=new Thread(my,"窗口9");
        Thread t10=new Thread(my,"窗口10");

        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
        t6.start();
        t7.start();
        t8.start();
        t9.start();
        t10.start();

    }

}
01-06 12:09