`
yuyeyi
  • 浏览: 36586 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

用JAVA中的多线程示例火车站售票问题

阅读更多
/** 
*@authorleno 
*售票类 
*/ 
class SaleTicket implements Runnable { 
    int tickets = 100; 

    public void run() { 
      while (tickets > 0) { 
          sale(); 
//或者下面这样实现 
//        synchronized (this) { 
//            if (tickets > 0) { 
//                System.out.println(Thread.currentThread().getName() + "卖第" 
//                      + (100 - tickets + 1) + "张票"); 
//                tickets--; 
//            } 
//        } 
      } 
    } 

    public synchronized void sale() { 
      if (tickets > 0) { 
          System.out.println(Thread.currentThread().getName() + "卖第" 
                  + (100 - tickets + 1) + "张票"); 
          tickets--; 
      } 
    } 

} 

public class TestSaleTicket { 

    public static void main(String[] args) { 
      SaleTicket st = new SaleTicket(); 
      new Thread(st, "一号窗口").start(); 
      new Thread(st, "二号窗口").start(); 
      new Thread(st, "三号窗口").start(); 
      new Thread(st, "四号窗口").start(); 

    } 
} 

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics