最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java中wait和sleep的區(qū)別

 更新時間:2019年03月14日 11:23:46   作者:淡定的蝸牛  
這篇文章主要介紹了Java中wait和sleep的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.概述

在這篇簡短的文章中,我們將看一下核心Java 中的標(biāo)準(zhǔn)sleep()和wait()方法,并了解它們之間的差異和相似之處。

2. wait和sleep之間的一般差異

簡單地說,wait()是一個用于線程同步的實例方法。

它可以在任何對象上調(diào)用,因為它在java.lang.Object上定義,但它只能從synchronized塊中調(diào)用。它釋放對象的鎖定,以便另一個線程可以跳入并獲取鎖。

另一方面,Thread.sleep()是一個可以從任何上下文調(diào)用的靜態(tài)方法。Thread.sleep()暫停當(dāng)前​​線程并且不釋放任何鎖。

以下是對這兩個核心API的初步了解:

private static Object LOCK = new Object();
 
private static void sleepWaitExamples() 
 throws InterruptedException {
 
 Thread.sleep(1000);
 System.out.println(
  "Thread '" + Thread.currentThread().getName() +
  "' is woken after sleeping for 1 second");
 
 synchronized (LOCK) {
  LOCK.wait(1000);
  System.out.println("Object '" + LOCK + "' is woken after" +
   " waiting for 1 second");
 }
}

運行此示例將生成以下輸出:

Thread ‘main' is woken after sleeping for 1 second
Object ‘java.lang.Object@31befd9f' is woken after waiting for 1 second

3.喚醒wait和sleep

當(dāng)我們使用sleep()方法時,線程在指定的時間間隔后啟動,除非它被中斷。

對于wait(),喚醒過程有點復(fù)雜。我們可以通過調(diào)用正在等待的監(jiān)視器上的notify()或notifyAll()方法來喚醒線程。

如果要喚醒處于等待狀態(tài)的所有線程,請使用notifyAll()而不是notify()。與wait()方法本身類似,必須從同步上下文中調(diào)用notify()和notifyAll()。

例如,您可以在這里等待:

synchronized (b) {
 while (b.sum == 0) {
  System.out.println("Waiting for ThreadB to complete...");
  b.wait();
 }
 
 System.out.println("ThreadB has completed. " + 
  "Sum from that thread is: " + b.sum);
}

然后,這是另一個線程如何喚醒等待線程 - 通過在監(jiān)視器上調(diào)用notify():

int sum;
 
@Override
public void run() {
 synchronized (this) {
  int i = 0;
  while (i < 100000) {
   sum += i;
   i++; 
  }
  notify(); 
 } 
}

運行此示例將生成以下輸出:

Waiting for ThreadB to complete…

 ThreadB已經(jīng)完成。該線程的總和是:704982704

4.結(jié)論

這是Java 中等待和睡眠語義的快速入門。

通常,我們應(yīng)該使用sleep()來控制一個線程的執(zhí)行時間,使用wait()來進行多線程同步。當(dāng)然,在深入了解基礎(chǔ)知識之后,還有更多需要探索的內(nèi)容。

以上所述是小編給大家介紹的Java中wait和sleep的區(qū)別詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SpringBoot實現(xiàn)防止XSS攻擊的示例詳解

    SpringBoot實現(xiàn)防止XSS攻擊的示例詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實現(xiàn)防止XSS攻擊,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • SpringMVC解析JSON請求數(shù)據(jù)問題解析

    SpringMVC解析JSON請求數(shù)據(jù)問題解析

    這篇文章主要介紹了SpringMVC解析JSON請求數(shù)據(jù)問題解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java實現(xiàn)斗地主之洗牌發(fā)牌

    Java實現(xiàn)斗地主之洗牌發(fā)牌

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)斗地主之洗牌發(fā)牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • SpringBoot單元測試使用@Test沒有run方法的解決方案

    SpringBoot單元測試使用@Test沒有run方法的解決方案

    這篇文章主要介紹了SpringBoot單元測試使用@Test沒有run方法的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Springboot?集成spring?cache緩存的解決方案

    Springboot?集成spring?cache緩存的解決方案

    這篇文章主要介紹了Springboot?集成spring?cache緩存,使用緩存最關(guān)鍵的一點就是保證緩存與數(shù)據(jù)庫的數(shù)據(jù)一致性,本文給大家介紹最常用的緩存操作模式,對Springboot?集成spring?cache緩存操作流程感興趣的朋友一起看看吧
    2022-06-06
  • IDEA創(chuàng)建Java?Web項目的超詳細(xì)圖文教學(xué)

    IDEA創(chuàng)建Java?Web項目的超詳細(xì)圖文教學(xué)

    IDEA是程序員們常用的java集成開發(fā)環(huán)境,也是被公認(rèn)為最好用的java開發(fā)工具,下面這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Java?Web項目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • java判斷字符串包含某個字符的實例方法

    java判斷字符串包含某個字符的實例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于java判斷字符串包含某個字符的實例方法,有需要的朋友們學(xué)習(xí)下。
    2019-12-12
  • 如何在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點

    如何在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點

    這篇文章主要介紹了如何在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Flask實現(xiàn)異步非阻塞請求功能實例解析

    Flask實現(xiàn)異步非阻塞請求功能實例解析

    這篇文章主要介紹了Flask實現(xiàn)異步非阻塞請求功能實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • springboot整合mybatis-plus 實現(xiàn)分頁查詢功能

    springboot整合mybatis-plus 實現(xiàn)分頁查詢功能

    這篇文章主要介紹了springboot整合mybatis-plus 實現(xiàn)分頁查詢功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論

东港市| 故城县| 郑州市| 顺义区| 江北区| 馆陶县| 汉寿县| 河北省| 德兴市| 上饶县| 四子王旗| 措勤县| 灵丘县| 虎林市| 贺兰县| 林甸县| 科技| 松阳县| 杭州市| 昂仁县| 大足县| 定日县| 桂阳县| 金乡县| 滨海县| 南漳县| 宿松县| 拜城县| 陆川县| 抚远县| 包头市| 金昌市| 江川县| 乌拉特前旗| 通山县| 罗定市| 阿拉善盟| 辰溪县| 湘潭市| 蓝田县| 莲花县|