首先對於類的歸屬:wait是object的方法,而sleep屬於thread。在執行sleep時,其執行緒會停止執行相應時間,但其執行緒的監控器並不會停止監控,即執行緒不會釋放鎖,一段時間過後執行緒會自動恢復執行。而執行wait方法的執行緒在執行此方法後會馬上進入執行緒的等待佇列,成為阻塞態,直至此物件再次執行notify方法時,才會進入執行緒鎖定池進入就緒態。
測試:
/**
* * @classname: service
* @author: 鄧盛哲
* @date: 2023年2月20日 上午12:06:18
* */
public class service catch (interruptedexception e)
} }
public void testnotify(object lock)
}}
執行緒a使用wait方法,在一秒鐘後wait
public class testwaitclass extends thread
public testwaitclass(object lock)
@override
public void run() catch (interruptedexception e)
} }}
執行緒b只使用sleep
public class anotestwaitclass extends thread
@override
public void run() catch (interruptedexception e)
} }}
輸出
thread-0 is runing
thread-1 is running
thread-1 is running
在執行了testwait後,thread-0主動釋放鎖進入鎖定池,等待其他執行緒執行了lock的notify後才會對其進行喚醒,然而並沒有其他物件進行喚醒,所以一直處於wait狀態。而thread-0只是讓執行緒暫停了millis時長,並未放棄監視器,所以可以得到此輸出。 bootstrap 查缺補漏
bootstrap標題樣式進行了以下顯著的優化重置 單行內聯 多行塊 注pre.pre scrollable 控制 塊區域最大高度為340px,一旦超出這個高度,就會在y軸出現滾動條 使用者輸入 複製 table 基礎 table striped 斑馬線 table bordered 帶邊框的 ta...
React查缺補漏
1.react.createelement 根據指定的第乙個引數建立乙個react元素 第乙個引數是必填,傳入的是似html標籤名稱,eg ul,li 第二個引數是選填,表示的是屬性,eg classname 第三個引數是選填,子節點,eg 要顯示的文字內容 render react.createe...
HTML查缺補漏
標籤名必須使用小寫字母 屬性名必須使用小寫字母,屬性值必須用雙引號包裹 使用4個空格作為乙個縮排層級 class屬性值 單純全小寫,單詞之間以 分割 id屬性值使用小駝峰式命名法 元素是實體,標籤是名稱 標記 元素構成html檔案的基本物件 標籤用於標記html元素屬性 引入外部資源 定義內聯樣式 ...