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


Comments and Discussions!

Load comments ↻


Advertisement
Advertisement
Advertisement



Copyright © 2024 www.includehelp.com. All rights reserved.