Java Object.wait(long timeout, int nanos)

Syntax

Object.wait(long timeout, int nanos) has the following syntax.

public final void wait(long timeout, int nanos)  throws InterruptedException

Example

In the following code shows how to use Object.wait(long timeout, int nanos) method.


class MyResource {
  boolean ready = false;
//  w ww  .  j  a v  a2s. co m
  synchronized void waitFor() throws Exception {
    System.out.println(Thread.currentThread().getName()
        + " is entering waitFor().");
    while (!ready)
      wait(10000, 500);

    System.out.println(Thread.currentThread().getName()
        + " resuming execution.");
  }

  synchronized void start() {
    ready = true;
    notify();
  }
}

class MyThread implements Runnable {
  MyResource myResource;

  MyThread(String name, MyResource so) {
    myResource = so;
    new Thread(this, name).start();
  }

  public void run() {

    try {
      myResource.waitFor();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

public class Main {
  public static void main(String args[]) throws Exception {
    MyResource sObj = new MyResource();
    new MyThread("MyThread", sObj);
    for (int i = 0; i < 10; i++) {
      Thread.sleep(50);
      System.out.print(".");
    }
    sObj.start();
  }
}




















Home »
  Java Tutorial »
    java.lang »




Boolean
Byte
Character
Class
Double
Enum
Float
Integer
Long
Math
Number
Object
Package
Process
ProcessBuilder
Runnable
Runtime
SecurityManager
Short
StackTraceElement
StrictMath
String
StringBuffer
StringBuilder
System
Thread
ThreadGroup
ThreadLocal
Throwable