package net.okren.java;class SaleTicket implements Runnable{ private int tickets = 100; public void run(){ while(tickets > 0){ sale(); } } private synchronized void sale(){ if(tickets > 0){ System.out.println(Thread.currentThread().getName() + "卖出 第 "+ (100 - tickets + 1)+"张票"); tickets--; try{ Thread.sleep(500); }catch(InterruptedException e){ e.printStackTrace(); } } }}public class JavaTest { public static void main(String[] args){ SaleTicket st = new SaleTicket(); Thread t1 = new Thread(st, "一号窗口"); Thread t2 = new Thread(st, "二号窗口"); Thread t3 = new Thread(st, "三号窗口"); Thread t4 = new Thread(st,"四号窗口 "); t1.start(); t2.start(); t3.start(); t4.start(); }}