Which of the following statements are true?
◦ When wait() is invoked, it pauses the thread and releases the lock on the object simultaneously. When the thread is restarted after being notified, the lock is automatically reacquired.
◦ An exception would occur if no thread is waiting on the object when the notify() method is invoked on the object.
◦ The notify() method can wake only one waiting thread.
◦ The wait(), notify(), and notifyAll() methods must be invoked from a synchronized method or a synchronized block.