Java 中sleep()與wait()的區別

目錄

    • 一、原理不同
    • 二、鎖的處理機制不同
    • 三、使用的區域不同
    • 四、異常捕獲不同
    • 五、總結

一、原理不同


  • sleep()是Thread類的靜態方法,是線程用來控制自身流程的,它會使此線程暫停執行指定的時間,而把執行機會讓給其他的線程,等到計時時間到,此線程會自動蘇醒。

  • wait()是Object類的方法,用于線程間的通信,這個方法會使當前擁有該對象鎖的進程等待,直到其他線程調用notify()方法才醒來,也可以指定時間自己醒來。


二、鎖的處理機制不同


  • sleep()方法的主要作用是讓線程休眠指定一段時間,在時間到時自動恢復,不涉及線程間的通信,因此,調用sleep()方法并不會釋放掉鎖

  • 調用wait()方法的時候,線程會釋放掉它所占用的鎖,從而使線程所在對象中的其他synchronized數據可以被其他線程使用。


三、使用的區域不同


  • sleep()方法則可以放在任何地方使用。

  • wait()必須放在同步控制方法或者同步語句塊中使用。


四、異常捕獲不同


  • sleep()方法必須捕獲異常,在sleep()的過程中,有可能別的其他對象調用其interrupt(),產生InterruptedException異常。

  • wait(),notify()以及notifyall()不需要捕獲異常。


五、總結


sleep()不會釋放鎖標志,容易導致死鎖的發生,所以一般情況下,不推薦使用sleep方法,而是使用wait方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446783.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android--地圖定位打卡

獲取位置信息 1)位置信息 GPS衛星定位,在室外適用 基站(3個基站交叉,鎖定手機位置)–基站定位不平均,有些地方實現不了3點定位 網絡定位–通過手機IP地址,去鎖定位置(消耗流量,對網絡有要求) 谷歌地圖的大致實現思路(通用) 2)實現定位功能的重要類 在百度地圖和高德地圖中不…

Android 將整形顏色值轉換成String類型

轉換方法: val hexColor String.format("#%06X", [0xFFFFFF or intColor]);轉換結果: #F2EADA

MacOS 的 zsh 和 bash 切換

目錄一、從 bash 切換到 zsh1、使用系統自帶的 zsh2、使用第三方的 zsh2.1、Clone代碼到本地2.2、備份你已存在的 ~/.zshrc 文件2.3、新建一份新的 zsh 配置文件2.4、改變默認的shell腳本二、從 zsh 切換回 bash三、zsh 和 bash 的環境變量zsh、bash 都是shell,zsh …

android--在命令行中生成Android的數字證書keystore文件

標題 生成 密鑰口令為 13458977480 密鑰庫口令為 13458977480 存放位置 查看證書的相關資料

linux查看系統日志

cd /var/log/gscubuntu:/var/log$ tail -f syslog

IDEA 創建 SpringBoot 項目

目錄一、新建Springboot項目第一步:新建一個Springboot項目第二步:選擇項目模板第三步:設置項目配置第四步:設置項目依賴第五步:設置項目名稱及路徑第六步:創建完成二、測試及運行1、測試代碼2、設置默認端…

VC++軟件

一個main fatal error LNK1169: 找到一個或多個多重定義的符號–報錯 一個項目即一個程序&#xff0c;多個文件只能有一個main函數 刪除掉多余的main 控制臺按enter鍵閃退 在代碼中加上 #include<stdlib.h> getchar();//讓控制臺停留 system("pause");//讓…

IDEA 將 SpringBoot 項目打包成jar

目錄一、打包配置1、File -> Project Structure2、Project Structure3、設置啟動類及META-INF4、設置打包輸出目錄二、打包1、Build -> Artifacts2、Build三、查看打包文件四、運行新建SpringBoot項目&#xff1a;IDEA 創建 SpringBoot 項目 一、打包配置 1、File -> …

2014年考研英語一完型填空知識點

單詞 單詞釋意commitv犯罪sufficientlyadv足夠gainfuladj有收益的socioeconomicadj社會經濟的discontentn/v不滿意householdn家庭supervisionn監督offensiveadj冒犯的conditionn狀態casualadj隨意的causaladj因果關系的establishedadj已確立,公認的interactionn相互作用或影響…

如何查看軟連接,以及相關注意事項

使用命令 ls -il 圖片顯示 參考鏈接 Linux 命令之軟連接詳解Linux軟連接 查看/創建/刪除

Git SSH key配置

一、檢查本地Git配置 用如下命令&#xff08;如未特別說明&#xff0c;所有命令均默認在Git Bash工具下執行&#xff09;檢查一下用戶名和郵箱是否配置&#xff08;github支持我們用用戶名或郵箱登錄&#xff09;&#xff1a; git config --global --list 顯示信息如下&#…

2014年英語一閱讀理解Text1

單詞解釋chancellorn總理upfrontadj坦率的eligibleadj有資格的,合格的fortnightlyadv兩星期一次的sign on辦理reformn改革subsidisev補助zealn熱情taxpayern納稅人claimantn(因失業)領取救濟金者skip down邊跳邊走prospectn前景psychologicallyadv心理上地excludev不包括crucia…

HTTPS 工作原理

一、簡介 HTTPS對于客戶端開發人員來說并沒有什么需要特別注意的地方&#xff0c;因為代碼和寫HTTP請求時并沒有什么兩樣。但也正是因為這個原因&#xff0c;導致許多客戶端開發人員對HTTPS并不了解&#xff0c;只知道它是安全的加密網絡傳輸&#xff0c;對其具體的工作原理卻一…

解決VM虛擬機中ubuntu系統上不了網的問題

最簡單的方式 關閉虛擬機在對應的虛擬機上右鍵&#xff0c;點擊設置&#xff0c;找到網絡適配器&#xff0c;點擊移除&#xff0c;再次點擊添加&#xff0c;將網絡適配器再次添加回來&#xff0c;點擊確定重啟虛擬機如果第一種方式解決不了問題&#xff0c;請使用第二種方式 …

Android Glide圖片加載框架(一)基本用法

文章目錄一、前言二、簡介三、基本用法第一步&#xff1a;調用 Glide.with() 方法創建加載圖片的實例第二步&#xff1a;調用 load() 方法指定待加載的圖片資源第三步&#xff1a;調用 into() 方法綁定顯示控件總結四、擴展用法1、占位圖2、指定圖片格式3、指定圖片大小Android…

codeforces71A-C語言解題報告

71A題目地址 題目解答 1.輸入單詞 超過10個字母的單詞,輸出第一個字母中間個數最后一個字母 沒有超過的,直接輸出 2.循環讀取輸入 在for循環內部,接收用戶輸入的單詞 知識點 1.接收用戶輸入 int a; scanf("%d",&a); 2.字符串數組 C語言中沒有專門的字符串數組…

操作系統 進程 學習以及思考

進程管理邏輯圖 將多個程序拷貝到進程中&#xff0c;占用內存&#xff0c;如圖扇形區域&#xff0c;當酷狗進程需要資源的時候&#xff0c;會通過I/O子系統取用資源的過程中&#xff0c;會放棄對cpu的占用&#xff0c;cpu就會處理別的進程&#xff0c;因此提高了cpu的利用率&am…

Android Glide圖片加載框架(二)源碼解析之with()

文章目錄一、前言二、如何閱讀源碼三、源碼解析1、with()Android Glide圖片加載框架系列文章 Android Glide圖片加載框架&#xff08;一&#xff09;基本用法 Android Glide圖片加載框架&#xff08;二&#xff09;源碼解析之with() Android Glide圖片加載框架&#xff08;二…

codeforces 1A-C語言解題報告

1A題目網址 題目解析 1.使用axa面積的方塊去鋪滿n*m面積的廣場,方塊之間可以覆蓋,可以比廣場面積大,求最小使用的方塊數目 2.因為可以覆蓋,所以求取每一邊(n或m)能夠鋪多少的a,即為求取n/a向上取整,up(n/a)(na-1)/a,再把它們乘起來 number((na-1)/a)*((ma-1)/a); 3.因為有很…