最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

java wait

來源:懂視網(wǎng) 責(zé)編:臨意 時間:2022-01-24 19:16:08
文檔

java wait

wait()方法是屬于java中的一個方法,它的作用是能夠讓當(dāng)前線程進入等待狀態(tài),同時,wait()也會讓當(dāng)前線程釋放它所持有的鎖。直到其他線程調(diào)用此對象的notify()方法或者notifyAll()方法,當(dāng)前線程被喚醒(也就是進入“就緒狀態(tài)”)。
推薦度:
導(dǎo)讀wait()方法是屬于java中的一個方法,它的作用是能夠讓當(dāng)前線程進入等待狀態(tài),同時,wait()也會讓當(dāng)前線程釋放它所持有的鎖。直到其他線程調(diào)用此對象的notify()方法或者notifyAll()方法,當(dāng)前線程被喚醒(也就是進入“就緒狀態(tài)”)。

java wait是怎樣的呢?下面就讓我們一起來了解一下吧:

wait()方法是屬于java中的一個方法,它的作用是能夠讓當(dāng)前線程進入等待狀態(tài),同時,wait()也會讓當(dāng)前線程釋放它所持有的鎖。直到其他線程調(diào)用此對象的notify()方法或者notifyAll()方法,當(dāng)前線程被喚醒(也就是進入“就緒狀態(tài)”)。

說明:

notify()和notifyAll()方法的作用,則是用于喚醒當(dāng)前對象上的等待線程;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線程等待,而是當(dāng)前執(zhí)行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);//使當(dāng)前線程阻塞1秒
             } catch (InterruptedException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }
             System.out.println(Thread.currentThread().getName()+" call notify()");
             this.notify();
         }
     }
 }

以上就是小編的分享了,希望能夠幫助到大家。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

java wait

wait()方法是屬于java中的一個方法,它的作用是能夠讓當(dāng)前線程進入等待狀態(tài),同時,wait()也會讓當(dāng)前線程釋放它所持有的鎖。直到其他線程調(diào)用此對象的notify()方法或者notifyAll()方法,當(dāng)前線程被喚醒(也就是進入“就緒狀態(tài)”)。
推薦度:
標(biāo)簽: java wait
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top