1 0執行緒 執行流程和方法

2021-10-02 21:38:39 字數 1165 閱讀 8076

yield();將執行緒從執行轉到就緒狀態 ,讓出cpu時間片,但不會釋放鎖。//類似於重新排隊

join();//類似於插隊加入,將join()的執行緒,放到當前要執行的位置,直到該執行緒執行完,才會再次執行其他執行緒。

notify():通知乙個在物件上等待的執行緒,使其從wait()方法返回,而返回的前提是該執行緒獲取到了物件鎖,沒有獲得鎖的執行緒重新進入waiting狀態

notifyall(): 通知所有等待在物件上的執行緒

wait():呼叫該方法的執行緒進入 waiting 狀態,只有等待另外的執行緒通知或被中斷才會返回,需要注意,呼叫wait()方法後,會釋放物件的鎖

wait(long):超時等待一段時間,這裡的引數時間是毫秒,如果沒有通知就超時返回,

wait(long,int):對於超時時間可以更細粒度煩的控制,可以達到納秒

等待和通知的標準:

01獲取物件鎖

02如果條件不滿足,那麼物件的wait()方法,被通知後仍要檢查條件。

03條件滿足則執行對應的邏輯。

synchronized(物件)

}在通過 wait()、notify()系列方法之前,執行緒必須要獲得該物件的物件級別鎖,即只能在同步方法或同步快中呼叫wait()方法、notify()系列方法,進入wait()方法後,當前執行緒釋放鎖,再從wait()前,執行緒與其他執行緒競爭獲得鎖,執行notify()系列方法的執行緒推出了呼叫了notifyall 的synchronized**塊後,他們就會競爭。如果其中的乙個執行緒獲得了該物件的鎖,他就會執行下去,當他退出**塊時,再釋放鎖,其他所有被喚醒煩人執行緒再競爭,直至所有被喚醒的執行緒都被執行完畢。

執行緒的優先順序

usethread.setpriority(num); //預設為5,(1~10 一般為)理論上有用

設定執行緒優先順序時,針對頻繁阻塞(休眠或者i/o操作)的執行緒需要設定高優先順序,而計算較多、用時較多的執行緒優先順序應設定較低,確保處理器不會被獨佔。

守護執行緒 :被用作完成和支援工作,記憶體** 等等被動啟動的內部執行緒。

當主線程結束,守護執行緒也會結束。設定方法:

主線程結束, 守護執行緒中 finally 也不一定會執行。看時間片是否會分配

執行緒池框架執行流程和原理分析

使用執行緒池的優勢 重用存在的執行緒,減少執行緒建立,消亡的開銷,提高效能 提高響應速度。當任務到達時,任務可以不需要的等到執行緒建立就能立即執行。提高執行緒的可管理性。執行緒是稀缺資源,如果無限制的建立,不僅會消耗系統資 源,還會降低系統的穩定性,使用執行緒池可以進行統一的分配,調優和監控。1.執...

SpringMVC學習筆記 10 執行流程詳解

以動態資源請求為例分析springmvc的執行流程 1.瀏覽器傳送的的請求經過tomcat,分配到dispatcherservlet web.xml中配置的 object 儲存controller listinterceptorlist 所有的 4 7 dispatcherservlet把handl...

HDFS Yarn簡介和執行流程

yarn 不同的計算框架可以共享同一hdfs集群上的資料,享受整體的資源排程 可以使mr,hdfs,spark,storm等共用同一集群的框架,yarn可以按框架的資源需求量做出合適的分配 yarn架構 1 resourcemanager rm 整個集群同一時間提供服務的rm只有乙個,負責集群資源的...