Two threads executing synchronized block simultaneously
Below is the code where a Thread enters a synchronized block, waits for 5seconds and then exits. I have started two Thread instances simultaneously. The expectation was one of the threads will own the lock on the synchronized object & the other will wait. After 5 seconds, when the lock owner exits, the waiting thread will execute. But, in actual, both the threads are executing the synchronized block simultaneously and also exiting at the same time. Expected Output: Thread-X <timeX> received the lock. Thread-X <timeX+5s> exiting... Thread-Y <timeY> received the lock. Thread-Y <timeY+5s> exiting... Actual Output: Thread-X <time> received the lock. Thread-Y <time> received the lock. Thread-X <time+5s> exiting... Thread-Y <time+5s> exiting... Any explanation of the above behavior will be really helpful. Am I missing something here? import java.text.SimpleDateFormat; import java.util.Date; public class Test2 { public static void main(S...