public class 生产者消费者模式 { public static void main(String[] args) { // Producer consumer Waiter w = new Waiter(); Thread p = new Thread(new Producer(w, 0), "生产者"); Thread c = new Thread(new Consumer(w, 0), "消费者"); p.start(); c.start(); } } //服务员 class Waiter { int i; } // 生产者 class Producer implements Runnable { Waiter waiter; int i; public Producer(Waiter waiter, int i) { this.waiter = waiter; this.i = i; } public void run() { synchronized (waiter) { while (true) { waiter.notify(); System.out.println("做出来了一个包子>>>>>>>>>>>" + i); i++; try { waiter.wait(); } catch (Exception e) { } } } } } // 消费者 class Consumer implements Runnable { Waiter waiter; int i; public Consumer(Waiter waiter, int i) { this.waiter = waiter; this.i = i; } public void run() { synchronized (waiter) { while (true) { waiter.notify(); System.out.println("吃了一个包子-------------------------------" + i); i++; try { waiter.wait(); } catch (Exception e) { } } } } } 核心思想:两个线程锁住同一一个对象A,干活之前先通知,干完活进入等待 先简单后复杂。。。。。。。。。。。。。