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();
}
}