
java wait是怎样的呢?下面就让我们一起来了解一下吧:
wait()方法是属于java中的一个方法,它的作用是能够让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。直到其他线程调用此对象的notify()方法或者notifyAll()方法,当前线程被唤醒(也就是进入“就绪状态”)。
说明:
notify()和notifyAll()方法的作用,则是用于唤醒当前对象上的等待线程;notify()方法是唤醒单个线程,而notifyAll()是唤醒所有的线程。

参考范例:
package com.citi.test.mutiplethread.demo0503;
import java.util.Date;
public class WaitTest {
public static void main(String[] args) {
ThreadA t1=new ThreadA("t1");
System.out.println("t1:"+t1);
synchronized (t1) {
try {
//启动线程
System.out.println(Thread.currentThread().getName()+" start t1");
t1.start();
//主线程等待t1通过notify唤醒。
System.out.println(Thread.currentThread().getName()+" wait()"+ new Date());
t1.wait();// 不是使t1线程等待,而是当前执行wait的线程等待
System.out.println(Thread.currentThread().getName()+" continue"+ new Date());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
class ThreadA extends Thread{
public ThreadA(String name) {
super(name);
}
@Override
public void run() {
synchronized (this) {
System.out.println("this:"+this);
try {
Thread.sleep(2000);//使当前线程阻塞1秒
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" call notify()");
this.notify();
}
}
}以上就是小编的分享了,希望能够帮助到大家。
