public class Test11 extends Thread
{
static Object obj1 = new Object();
static Object obj2 = new Object();
public void m1()
{
synchronized(obj1)
{
System.out.print("1 from m1");
synchronized(obj2)
{
System.out.println("\t 2 from m1");
}
}
}
public void m2()
{
synchronized(obj2)
{
System.out.print("2 from m2");
synchronized(obj1)
{
System.out.println("\t 1 from m2");
}
}
}
public void run()
{
m1();
m2();
}
public static void main(String[] args)
{
new Test11().start();
new Test11().start();
}
}
When i run this code each time output is(even if run in different dos windows)
1 from m1 2 from m1
2 from m2 1 from m2
1 from m1 2 from m1
2 from m2 1 from m2
it means d option is correct
please explain
Amit