public class WindowTest { public static void main(String[] args) { SaleTicket s=new SaleTicket(); Thread t1=new Thread(s); Thread t2=new Thread(s); Thread t3=new Thread(s); t1.setName("窗口1"); t2.setName("窗口2"); t3.setName("窗口3"); t1.start(); t2.start(); t3.start(); } } class SaleTicket implements Runnable{ int ticket1=100; Object obj=new Object(); @Override public void run() { // synchronized (同步监视器){括号里面要求填写是对象,要求是唯一的 /*需要被同步到代码 只能同步同一个线程 */ // } while(true){ synchronized (obj){//obj:必须是唯一。 try { Thread.sleep(200); } catch (InterruptedException e) { throw new RuntimeException(e); } if(ticket1>0){ System.out.println(Thread.currentThread().getName()+"售票,票号为:"+ticket1); ticket1--; }else if(ticket1==0){ System.out.println("票卖完了"); break; } } } } }