p2 notifyAll的时候,消费者获取不到锁不会被唤醒,p2 wait之后释放锁,阻塞的p1获取锁,如此循环了。你想要的效果可以用条件变量试试。不过这也不是生产消费者模型吧,你的buffer没有界诶。