public class TicketTest { public static void main() { Consumer consumer=new Consumer(); new Thread(consumer,"窗口1").start(); new Thread(consumer,"窗口2").start(); new Thread(consumer,"窗口3").start(); new Thread(consumer,"窗口4").start(); } static class Consumer implements Runnable { static int ticketCount = 20; @Override public void run() { while (ticketCount > 0) { synchronized (Consumer.class) { if (ticketCount > 0) { ticketCount--; System.out.println(Thread.currentThread().getName() + "卖1张票,剩余" + ticketCount + "张"); } else { System.out.println("票已卖完"); return; } } try { Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); } } } } }
直接调用new TicketTest().main即可