Thanks a lot Jonathan, it is really helpful. I'll be appearing for the exam in 2 weeks. I did Mr. Marcus Green's 3 sample question papers, but those also doesn't cover I/O & Threading that much. I am still confused with wait() & notify() when they should be used & why? If that is to be used for blocking other threads from accessing the same object,then what happens if say 2 different thread with say Math.random() sleep time excutes the object? Hope anybody can help me in this. Any good sample code for practising Thread & I/O?