A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zl78365336 中级黑马   /  2013-12-3 23:33  /  892 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zl78365336 于 2013-12-5 10:05 编辑



  •             while (!tsc.flag) {  
  •                 tsc.sellTicket(this); // 调用售票中心类
  •                 try {  
  •                     Thread.sleep(100);  
  •                 } catch (InterruptedException e) {  
  •                     e.printStackTrace();  
  •                 }  
  •             }  

-------------------------------------------
  •             if (ticketNum > 0) {  
  •                 int n = s.num+1;  
  •                 System.out.println("第--" + n+ "--售票窗口卖出了第" + ticketNum + "张票!");  
  •                 ticketNum--;  
  •             } else {  
  •                 flag = true;  
  •             }  

这个程序结果正确,截取的两小段,flag = true; 感觉有点矛盾,求指点!
--------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
  •     class TicketSealCenter {  
  •         int ticketNum = 50;  
  •         boolean flag = false; // 定义票是否卖完  
  •   
  •         public TicketSealCenter(int num) {//定义一个改变票数的方法  
  •             this.ticketNum = num;  
  •         }  
  •   
  •         public synchronized void sellTicket(SealWindow s) {  
  •             if (ticketNum > 0) {  
  •                 int n = s.num+1;  
  •                 System.out.println("第--" + n+ "--售票窗口卖出了第" + ticketNum + "张票!");  
  •                 ticketNum--;  
  •             } else {  
  •                 flag = true;  
  •             }  
  •         }  
  •     }  
  •     class SealWindow implements Runnable {  
  •         int num;  
  •         TicketSealCenter tsc;    
  •         public SealWindow(int num, TicketSealCenter tsc) {  
  •             this.num = num;  
  •             this.tsc = tsc;  
  •         }  
  •   
  •         public final void run() {  
  •             while (!tsc.flag) {  
  •                 tsc.sellTicket(this); // 调用售票中心类
  •                 try {  
  •                     Thread.sleep(100);  
  •                 } catch (InterruptedException e) {  
  •                     e.printStackTrace();  
  •                 }  
  •             }  
  •         }  

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马