Java Object.wait(long timeout)
Syntax
Object.wait(long timeout) has the following syntax.
public final void wait(long timeout) throws InterruptedException
Example
In the following code shows how to use Object.wait(long timeout) method.
class MyResource {
boolean ready = false;
/* w w w. ja v a 2s .com*/
synchronized void waitFor() throws Exception {
System.out.println(Thread.currentThread().getName()
+ " is entering waitFor().");
while (!ready)
wait(10000);
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();
}
}