Object: notifyAll() : Object « java.lang « Java by API






Object: notifyAll()

 
/*
 * Output:
Calling wait
Calling notifyAll
Done
Done


 */

class SyncFlag {
  boolean flag;

  synchronized void k1() {
    if(flag == false) {
      flag = true;
      try {
        System.out.println("Calling wait");
        wait();
      }
      catch(Exception e) {
        e.printStackTrace();
      }
    }
    else {
      flag = false;
      System.out.println("Calling notifyAll");
      notifyAll();
    }
  }
}

class MyThread extends Thread {
  SyncFlag flag;

  MyThread(SyncFlag k) {
    this.flag = k;
  }

  public void run() {
    flag.k1();
    System.out.println("Done");
  }
}

public class MainClass {

  public static void main(String args[]) {

    SyncFlag k = new SyncFlag();
    new MyThread(k).start();
    new MyThread(k).start();
  }
}
           
         
  








Related examples in the same category

1.Object: finalize()
2.Object: getClass()
3.Object: getClass() (2)
4.Object: hashCode()
5.Object: toString()
6.Object: wait(long timeout)