火车票购票系统模拟

package wei;
    public class  ss {
    public static void main(String[] args) {
    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(),即结束线程
    }
   }

       }

这里写图片描述

知识点:资源冲突;
       对象锁;
       线程间的同步控制;
       线程组;


   当多个线程冲突时,如果不加以控制,很可能会导致线程之间发生冲突;

当多个线程访问同一个对象时,往往会造成一定的冲突。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章