Home » 
        Java programming language
    
    Java Object Class final void wait(long ms , int ns) method with Example
    
    
    
            
        Java Object class final void wait(long ms , int ns) method: Here, we are going to learn about the final void wait(long ms , int ns) method of Object class with its syntax and example.
        Submitted by Preeti Jain, on June 28, 2019
    
    
    Object Class final void wait(long ms , int ns)
    
        - This method is available in java.lang.Object.wait(long ms, int ns).
- This method causes the current thread to wait for a specified amount of time in milliseconds and nanoseconds until another thread notification by calling notify() or notifyAll() method of the object.
- This method throws an InterruptedException when other thread interrupted current thread.
- This method can't override because it is final.
- The time will be given in the method is of milliseconds and nanoseconds.
Syntax:
    final void wait(long ms, int ns){
    }
    Parameter(s):
    Here we are passing two-time parameter one is in milliseconds and another is in nanoseconds(How long a thread has to wait i.e. we have to mention time in milliseconds and if want extra time then we can mention time in nanoseconds as well) as a parameter in the method of the Object class.
    Return value:
    The return type of this method is void that means this method returns nothing after execution.
    
    Java program to demonstrate example of Object Class wait(long ms , int ns) method
import java.lang.Object;
public class Thread1 {
    public static void main(String[] args) throws InterruptedException {
        // Create an object of Thread2
        Thread2 t2 = new Thread2();
        // By calling start() so Thread start() will exceute
        t2.start();
        Thread.sleep(1000);
        synchronized(t2) {
            System.out.println("Main thread trying to call wait()");
            // By calling wait() causes the current thread to wait 
            // for 1000 milliseconds until another   thread notification
            t2.wait(1000);
            System.out.println("Main Thread get notification here");
            System.out.println(t2.total);
        }
    }
}
class Thread2 extends Thread {
    int total = 0;
    public void run() {
        synchronized(this) {
            System.out.println("Thread t2 starts notification");
            for (int i = 0; i < 50; ++i) {
                total = total + i;
            }
            System.out.println("Thread t2 trying to given notification");
            this.notify();
        }
    }
}
Output
D:\Programs>javac Thread1.java
D:\Programs>java Thread1
Main thread trying to call wait()
Thread t2 starts notification
Thread t2 trying to given notification
Main Thread get notification here
190
    
    
  
    Advertisement
    
    
    
  
  
    Advertisement