写一个生产者和消费者,生产--生产--生产--生产,这样子循环。

public class ShareData {    private volatile  int num=0;    private Lock lock=new ReentrantLock();    private Condition condition=lock.newCondition();    public void  increment(){        try {            lock.lock();            while (num!=0){                condition.await();            }            num++;            System.out.println("线程--"+ Thread.currentThread().getName()+"执行了减少操作,num-->"+num);            condition.signalAll();        }catch (Exception e){            e.printStackTrace();        }finally {            lock.unlock();        }    }    public void  decrement(){        try {            lock.lock();            while (num==0){                condition.await();            }            num--;            System.out.println("线程--"+ Thread.currentThread().getName()+"执行了缩小操作,num-->"+num);            condition.signalAll();        }catch (Exception e){            e.printStackTrace();        }finally {            lock.unlock();        }    }}
    public static void main(String[] args) {        ShareData data=new ShareData();        for (int i=0;i<5;i++){            new Thread(()->{                data.increment();            },"AAA").start();        }        for (int i=0;i<5;i++){            new Thread(()->{                data.decrement();            },"BBB").start();        }    }

2个线程,一个生产,一个生产。生产者increment 之后,唤醒消费者,消费者开始生产。