What will be the output of the program?
public class Test
{
public static void main(String[] args)
{
final StringBuffer a = new StringBuffer();
final StringBuffer b = new StringBuffer();
new Thread()
{
public void run()
{
System.out.print(a.append(A));
synchronized(b)
{
System.out.print(b.append(B));
}
}
}.start();
new Thread()
{
public void run()
{
System.out.print(b.append(C));
synchronized(a)
{
System.out.print(a.append(D));
}
}
}.start();
}
}
Reveal answer
Fill a bubble to check yourself