用两个线程模拟存票、售票过程 假定开始售票处并没有票,一个线程往里存票,另外一个线程则往出卖票 public class ThreadTest { public static void main(String[] args) { Tickets t=new Tickets(20); new Producer(t).start(); new Consumer(t).start(); } static class Tickets{ int size;//总数 int num=0;//号码 Boolean available=false; public Tickets(int size){ this.size=size; } public synchronized void put(){ if(available==true) try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Producer puts ticket "+(++num)); available=true; notify(); } public synchronized void get(){ if(available==false) try { wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Consumer get ticket "+(num)); available=false; notify(); if (num==size) num=size+1 ; } } static class Producer extends Thread{ Tickets t=null; public Producer(Tickets t){ this.t=t; } public void run(){ while(t.num<t.size){ t.put(); } } } static class Consumer extends Thread{ Tickets t=null; public Consumer(Tickets t){ this.t=t; } public void run(){ while(t.num<t.size){ t.get(); } } } } 有什么问题,希望大家提出来共同讨论