package java3; /** * @author Suki * @creat 2022-09-15 17:27 */ class Product{ private int productCount = 0; public synchronized void consumeProduct() { if(productCount >0){ productCount--; System.out.println(Thread.currentThread().getName()+"开始消费第"+productCount+"个产品"); notify(); }else { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } public synchronized void produceProduct() { if(productCount < 20){ productCount++; System.out.println(Thread.currentThread().getName()+"开始生产第:"+productCount+"个产品"); notify(); }else{ try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } class Productor extends Thread{ private Product product; public Productor(Product product) { this.product = product; } @Override public void run() { while (true) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } product.produceProduct(); } } }