0

i have created a JAVA prog to check the working of synchronized block . But it is giving random answers every time. Can anyone explain why it is behaving like that.

Program:

public class ThreadSyncex1 extends Thread {
  public static void main(String[] args) {
    call a=new call();
    call b=new call();
    a.start();
    b.start();
    try {
      a.join();
      b.join();
    } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  } 
}

class call extends Thread {
  public void run() {
    System.out.println(System.currentTimeMillis());         
    synchronized(this)
    {
      try {  
        System.out.println(Thread.currentThread().getName());  
        System.out.println("Success...");
        Thread.sleep(500);
      } catch(Exception e){
        System.out.println(e);
      }              
    }
  }
}

It is giving output :

1502683588129
1502683588129
Thread-1
Thread-0
Success...
Success...

and

1502683592249
1502683592249
Thread-1
Success...
Thread-0
Success...
ivan.sim
  • 8,494
  • 7
  • 45
  • 60
Akshaya KAushik
  • 31
  • 1
  • 11

0 Answers0