ex8_8.java
来自「Java与面向对象程序设计实验教学讲义.复数类的实现,复数类的复杂运算,身份证号」· Java 代码 · 共 59 行
JAVA
59 行
public class Ex8_8{ public static void main(String[] args) { Tickets t=new Tickets(10); new Producer(t).start(); new Consumer(t).start(); }}class Tickets{ int size; //票总数 int number=0; //存票序号 int i=0; //售票序号 boolean available=false; //是否有待售的票 public Tickets(int size) { this.size=size; } public synchronized void put() //同步方法,实现存票的功能 { System.out.println("Producer puts ticket "+(++number)); available=true; } public synchronized void sell() //同步方法,实现售票的功能 { if(available==true && i<=number) System.out.println("Consumer buys ticket "+(++i)); if(i==number) available=false; } }class Producer extends Thread{ Tickets t=null; public Producer(Tickets t) //构造函数,使两线程共享票类对象 { this.t=t; } public void run() { while(t.number<t.size) //如果存票数小于限定总量,则不断往入存票 t.put(); } }class Consumer extends Thread{ Tickets t=null; public Consumer(Tickets t) //构造函数,使两线程共享票类对象 { this.t=t; } public void run() { while(t.i<t.size) //如果售票数小于限定总量,则不断售票 t.sell(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?