当前位置:懂科普 >

IT科技

> javawait使用

javawait使用

wait()方法是属于java中的一个方法,它的作用是能够让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。直到其他线程调用此对象的notify()方法或者notifyAll()方法,当前线程被唤醒(也就是进入“就绪状态”)。

说明:

notify()和notifyAll()方法的作用,则是用于唤醒当前对象上的等待线程;notify()方法是唤醒单个线程,而notifyAll()是唤醒所有的线程。

javawait使用

参考范例:

 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();         }     } }
标签: javawait
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/575l5y.html