waitjava的簡單介紹

本文目錄一覽:

java線程wait方法

wait和notify是用在多線程競爭同一鎖資源的情況下使用的。

你這段代碼實際是個單線程,這個線程自己把自己阻塞了,自然不可能自己把自己喚醒。

你的意圖怎麼實現呢?需要加入另外一個線程,下面是我仿照你的意圖寫的一段代碼,供參考下

public class A

{

    public A(){

        final A a = this;

        Thread th1 = new Thread(){

            @Override

            public void run(){

                //一直循環,去嘗試着喚醒a

                try

                {

                    this.sleep(10000);

                } catch (InterruptedException e)

                {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }//為檢查是不是能真正實現喚醒a,等待10000毫秒,此時保證a已經處於等待狀態中。

                while(true){

                    /**

                     * 用notify喚醒的線程必須是持有當前鎖對象的線程

                     */

                    synchronized (a){

                        a.notify();

                    }

                }

            }

        };

        th1.setDaemon(true);//這句也是必須的,將th1設為守護線程,保證在喚醒a以後,所有活動的線程都為守護線程,jvm能及時推出

        th1.start();//和a.run的順序不可以換

        this.run();

    }

    

    public static void main(String[] args)

    {

        new A();

    }

    public void run()

    {

        /**

         * 這裡可以換成這樣,直接鎖住this就行了

         */

        synchronized (this)

        {

            try

            {

                

                this.wait();//阻塞當前的線程

            } catch (InterruptedException e)

            {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }finally{

                System.out.println(“1”);//執行finally

            }

        }

        

        

    }

    

}

java中wait方法怎麼條用

wait方法用在 synchronized 方法或者 synchronized塊中。一般在判斷語句中,如果某條件被觸發,讓當前線程wait並釋放對象的鎖。此時可以讓其他線程可以對用以對象調用synchronized方法。直到調用 notify或者notifyAll後 wait的線程才有可能執行。所以一般wait 和 notify是成對出現的。

java wait的用法

wait是Object的方法,也就是說可以對任意一個對象調用wait方法,調用wait方法將會將調用者的線程掛起,直到其他線程調用同一個對象的notify方法才會重新激活調用者,例如:

//Thread 1

try{

obj.wait();//suspend thread until obj.notify() is called

}

catch(InterrputedException e) {

}

java中的sleep和wait的區別

sleep和wait的區別:

1、sleep的意思是:睡,睡覺,睡眠。

2、wait的意思是:等候,推遲,延緩等待,耽擱,伺候用餐。

拓展資料

sleep的用法

1、They were exhausted from lack of sleep

由於缺乏睡眠,他們非常疲憊。

2、During the car journey, the baby slept

坐車來的路上,寶寶睡著了。

3、I think he may be ready for a sleep soon.

我想他也許很快就要睡一覺了。

4、I can’t get to sleep with all that singing.

那些歌聲攪得我無法入睡。

5、I didn’t lose too much sleep over that investigation.

我並不太擔心那個調查。

wait

1、I walk to a street corner and wait for the school bus

我走到街角等校車。

2、There’ll be a car waiting for you

會有輛汽車等你。

3、I want to talk to you, but it can wait

我想和你談談,但可以晚點再說。

4、If you think this all sounds very exciting, just wait until you read the book

如果你覺得所有這些聽起來令人興奮,那就等着去讀這本書吧。

5、’Wait a minute!’ he broke in. ‘This is not giving her a fair hearing!’

“等一下,”他插嘴說,“這沒有給她一個公平的解釋機會!”

原創文章,作者:KCDIS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/325407.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KCDIS的頭像KCDIS
上一篇 2025-01-13 13:24
下一篇 2025-01-13 13:24

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進制下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27

發表回復

登錄後才能評論