1) This has nothing to do with
SCJP. But yes you can explicitly call
destroy method of your servlet, although you shouldn't do so. The
destroy method is similar to
finalize method in the sense that its intended to be called automatically not explicitly.
2) No, two different threads cannot enter two different synchronized methods on the same object.
3)
notifyAll only wakes Threads who called
wait method. After a thread releases the lock on an object, then any thread can be chosen to acquire the lock on that object, there are no guarantees that the thread with higher priority will get the lock on the object. If you call
notify, then too its not guaranteed which thread's
wait call will return...