您已经正确地指出了
notifyAll必须从同步块中调用。
但是,在您的情况下,由于自动装箱,您在其上同步的对象与您在其上调用的实例不同
notifyAll。实际上,新的,递增的
foo实例仍然被限制在堆栈中,并且其他线程可能不会在
wait调用中被阻塞。
您可以实现自己的可变计数器来执行同步。根据您的应用程序,您可能还会发现AtomicInteger满足您的需求。

您已经正确地指出了
notifyAll必须从同步块中调用。
但是,在您的情况下,由于自动装箱,您在其上同步的对象与您在其上调用的实例不同
notifyAll。实际上,新的,递增的
foo实例仍然被限制在堆栈中,并且其他线程可能不会在
wait调用中被阻塞。
您可以实现自己的可变计数器来执行同步。根据您的应用程序,您可能还会发现AtomicInteger满足您的需求。