Duration: 16:25 minutes
Summary: In this video, we discuss more threading details. We see how to choose between multiple implementations of the run() method. In this case, we see the use of an anonymous inner class that extends MyThread, which extends the Thread class. Also, we see how to distinguish between the use of 'synchronize' and 'static synchronize' methods. Synchronized methods block each other during calls. Calling sleep() requires the try/catch block, and calling wait() without synchronizing first will throw IllegalMonitorStateException.