Java Object类 final void void wait()方法,带有示例

对象类final void wait()

  • 此方法在java.lang.Object.wait()中可用。

  • 此方法通过调用对象的notify()notifyAll()方法使当前线程等待直到另一个线程通知。

  • 当其他线程中断当前线程时,此方法将引发InterruptedException。

  • 此方法是最终方法,因此无法覆盖。

语法:

    final void wait(){
    }

参数:

我们不会在Object类的方法中将任何对象作为参数传递。

返回值:

该方法的返回类型为空,这意味着该方法在执行后不返回任何内容。

Java程序演示对象类wait()方法的示例

import java.lang.Object;

public class Thread1 {
    public static void main(String[] args) throws InterruptedException {

        //创建一个Thread2对象

        Thread2 t2 = new Thread2();

        //通过调用start(),线程start()将执行
        t2.start();

        synchronized(t2) {

            System.out.println("Main thread trying to call wait()");

            //通过调用wait()导致当前线程 
            //等到另一个线程执行
            t2.wait();

            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 < 100; ++i) {
                total = total + i;
            }

            System.out.println("Thread t2 trying to given notification");
            this.notify();
        }
    }
}

输出结果

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
4950
猜你喜欢