🕐 阻塞队列实现等待唤醒机制

生产者 ```java public class Cook extends Thread{ ArrayBlockingQueue<String> queue; public Cook(ArrayBlockingQueue<String> queue) { this.queue = queue; } @Override public void run() { while (true){ try { //不断往阻塞队列放面条 queue.put("面条"); System.out.println("厨师放了一碗面条"); } catch (InterruptedException e) { e.printStackTrace(); } } } } ``` 消费者 ```java public class Foodle extends Thread{ ArrayBlockingQueue<String> queue; public Foodle(ArrayBlockingQueue<String> queue) { this.queue = queue; } @Override public void run() { while (true){ try { //不断从阻塞队列中获取面条 String food = queue.take(); System.out.println(food); } catch (InterruptedException e) { e.printStackTrace(); } } } } ``` 测试类 ```java public class RunTest { public static void main(String[] args) { //创建阻塞队列对象 ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<>(1); Cook cook = new Cook(queue); Foodle foodle = new Foodle(queue); cook.start(); foodle.start(); } } ```