大吃一278 2022-11-30 09:18 采纳率: 84%
浏览 21

Java售票线程类模拟窗口

1.以下程序为售票线程类。定义测试类,在主方法中用三个线程模拟三个售票窗口,总共出售200张票。运行程序,分析输出结果。





class SellTickets implements Runnable{
    private int tickets = 200;   
    public void run() {
        while(tickets > 0)
         {
            System.out.println( Thread.currentThread().getName() +
                                         " is selling ticket "+tickets--);
          }
    }
}   

2.定义测试类,在主方法中创建两个线程模拟出票和售票过程。运行程序,查看输出结果。去掉Tickets类中的注释语句,重新运行程序,分析有何问题,原因是什么?改正程序,重新运行程序,记录输出结果。





class Tickets {
    int number = 0;                   //存票票号
    int size;                          //总票数
    boolean available = false;     //表示目前是否有票可售
    int i = 0;                        //售票序号
    public Tickets(int size)       //构造函数,传入总票数参数
    {
        this.size=size;     
    }
    public void put(){
        System.out.println("Producer puts ticket "+(++number));
        available=true;    
    }
    public void sell(){
        if(available==true && i<=number)
            System.out.println("Consumer buys ticket "+(++i));    
        if(i==number) {  
            /*try{ Thread.sleep(1); }  catch ( InterruptedException exception ) {};*/
            available=false;
        }
    }
}
class Producer1 extends Thread //存票线程
{
    Tickets t=null;
    public Producer1(Tickets t)
    {    this.t=t;      }
    public void run()
    {
        while( t.number < t.size)
        {
             t.put(); 
        }            
    }
}
class Consumer1 extends Thread  //售票线程
{
    Tickets t=null;    
    public Consumer1(Tickets t)
    {      this.t=t;      }
    public void run()
    {
        while(t.i < t.size) 
        {
           t.sell() ;
        }
    }
}

3.修改以上程序,实现每存入一张票,就售出一张票,售出后再存入。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-30 12:50
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月30日

悬赏问题

  • ¥20 ARM64架构下SSCMS部署问题
  • ¥20 请教如何让移动端的热区自适应
  • ¥30 为什么深度学习网络训练会出现训练集和测试集准确率和损失都不变的情况
  • ¥66 如何adb的情况下找打手机隐藏的文件
  • ¥15 (标签-3D|关键词-色模型)
  • ¥15 发现在MSVS2022中”#pragma once“不起作用
  • ¥15 实时声纹降噪算法进行无关说话人语音抑制
  • ¥100 adb针对解决手机锁屏问题(相关搜索:手机锁屏)
  • ¥15 发现哔哩哔哩的粉丝只能显示前5页能不能爬出来
  • ¥15 oracle数据库求解