⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex8_7.java

📁 Java与面向对象程序设计实验教学讲义.复数类的实现,复数类的复杂运算,身份证号码的分析,图形界面设计
💻 JAVA
字号:
public class Ex8_7{	public static void main(String[] args)	{		Tickets t=new Tickets(10); //新建一个票类对象,总票数作为参数                new Consumer(t).start(); //以同一个票类对象为参数创建售票线程,并启动		new Producer(t).start();  //以票类对象为参数创建存票线程对象,并启动			}}class Tickets    //票类{	int number=0;          //票号	int size;               //总票数	boolean available=false;  //表示目前是否有票可售	public Tickets(int size)  //构造函数,传入总票数参数	{		this.size=size;     	}		}class Producer extends Thread  //存票线程{	Tickets t=null;	public Producer(Tickets t)  //构造函数以一个票类对象为参数	{		this.t=t;	}	public void run()	{		while( t.number < t.size)  //限制循环条件为存票序号小于总票数		{			System.out.println("Producer puts ticket "+(++t.number));			t.available=true;  //可以卖票		}				}}class Consumer extends Thread  //售票线程{	Tickets t=null;	int i=0;	public Consumer(Tickets t)  //构造函数以一个票类对象为参数	{		this.t=t;	}	public void run()	{		while(i<t.size)   //循环条件为售票序号小于总票数		{			if(t.available==true && i<=t.number)  //有票可售且小于目前票序号			  System.out.println("Consumer buys ticket "+(++i));			if(i==t.number)  //如果票已售到当前序号,则不可售                      { //                           try{ //                               Thread.sleep(1); //                           }//                            catch ( InterruptedException exception ) {};			    t.available=false;                        }		}					}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -