教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Java中Sleep和Wait有什么區(qū)別?【Java面試題】

更新時(shí)間:2020年09月29日10時(shí)42分 來源:黑馬程序員 瀏覽次數(shù):

(1)問題分析:

面試官考核的線程方面的問題,線程的生命周期與過程中的阻塞狀態(tài)。

(2)核心答案講解:

對(duì)于sleep()方法,我們首先要知道該方法是屬于Thread類中的。而wait()方法,則是屬于Object類中的。sleep()方法導(dǎo)致了程序暫停執(zhí)行指定的時(shí)間,讓出cpu該其他線程,但是他的監(jiān)控狀態(tài)依然保持者,當(dāng)指定的時(shí)間到了又會(huì)自動(dòng)恢復(fù)運(yùn)行狀態(tài)。在調(diào)用sleep()方法的過程中,線程不會(huì)釋放對(duì)象鎖。而當(dāng)調(diào)用wait()方法的時(shí)候,線程會(huì)放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象調(diào)用notify()方法后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲取對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。


(3)問題擴(kuò)展:

線程生命周期及線程同步安全問題。

(4)結(jié)合項(xiàng)目中使用:

生產(chǎn)者消費(fèi)者 生產(chǎn)完成 倉(cāng)庫(kù)最多放一百個(gè),必須等賣出五十個(gè)之后再通知生產(chǎn)。


猜你喜歡

Java算法之冒泡排序

java.lang.NullPointerException_java空指針異常解決方法 

什么是系統(tǒng)授權(quán)?系統(tǒng)授權(quán)流程介紹 

傳智播客Java高級(jí)軟件工程師課程 

0 分享到:

Java高級(jí)軟件工程師課程javaee

Python大數(shù)據(jù)課程python

web前端課程全薪升級(jí)V8.5web

AI+設(shè)計(jì)課程design

大數(shù)據(jù)培訓(xùn)班cloud

軟件測(cè)試培訓(xùn)課程test

c

新媒體運(yùn)營(yíng)培訓(xùn)課程netmarket

產(chǎn)品經(jīng)理培訓(xùn)課程pm

linux培訓(xùn)班Linux

影視制作培訓(xùn)movies

智能機(jī)器人開發(fā)robot

電商視覺設(shè)計(jì)uids

人工智能培訓(xùn)課程Python

集成電路應(yīng)用開發(fā)(嵌入式)培訓(xùn)課程jdbc

和我們?cè)诰€交談!