執行緒的狀態分為:新、可執行、等待/阻塞/睡眠、執行、死
1、所謂的執行緒同事執行的背後含義。
執行緒的執行和作業系統cpu有關,當你的cpu是單核,其實是乙個執行緒在執行,4核cpu是4個執行緒再執行。單核cpu執行時,在這個時間段,劃分為多個時間片,單執行緒輪換執行每個時間片。由於執行速度快,可以看作是多執行緒同時執行。
2、thread.sleep();
執行緒睡眠,讓其它執行緒有機會執行,時間到期後自動甦醒,該執行緒變為可執行狀態。(不能保證睡眠到期後就開始執行)
3、thread.jiled();(執行緒的讓步與優先順序)
執行緒優先順序為1~10的正整數,預設優先順序為5。通過方法setpriority(5)來設定優先級別。在thread中有三個常量定義了優先順序的範圍。最高static int max_priority 最低min_priority 預設norm_priority。
thread.jiled()是做執行緒讓步,它會從執行狀態轉到可執行狀態讓其它同(優先)級別的執行緒來執行。
(讓步不會造成執行緒阻塞、等待、睡眠)(讓步後可能cpu又選中當前執行緒,這樣就導致讓步失敗,所以讓步也可能沒有效果)
4、物件.join();
保證當前執行緒停止執行,直到它加入的執行緒執行完畢。然而如果它加入的執行緒沒有存活,那麼它不需要停止。
另外,join()方法還有帶超時限制的過載版本。 例如t.join(5000);則讓執行緒等待5000毫秒,如果超過這個時間,則停止等待,變為可執行狀態。執行緒的加入join()對執行緒棧導致的結果是執行緒棧發生了變化,當然這些變化都是瞬時的。下面給示意圖:
執行緒優先順序
執行緒優先順序由執行緒所屬程序的優先順序類 執行緒自身的相對優先級別共同確定,二者組合值作為執行緒的基優先順序。base priority level win32系統中,執行緒基優先順序的範圍從最低優先順序0到最高優先順序31。系統優先順序程式優先順序類別 執行緒優先順序等級 1idle prior...
執行緒優先順序
優先順序是執行緒排程的重要依據。優先順序高的執行緒,永遠先獲得cpu的青睞。當然啦,作業系統會視情況調整各個執行緒的優先順序。例如前台執行緒的優先順序應該調高一些,後台執行緒的優先順序應該調低一些。執行緒的優先順序範圍從0 最低 到31 最高 當你產生執行緒時,並不是直接以數值指定其優先順序,而是採...
執行緒優先順序
知識點 執行緒優先順序 獲取當前執行緒控制代碼 執行緒優先順序設定 執行緒優先順序變動 執行緒優先順序獲取 一 執行緒優先順序 thread priority 簡單的說就是 執行緒 的優先順序越高,那麼就可以分佔相對多的cpu時間片。每個程序都有相應的優先順序,優先順序決定它何時執行和占用 cpu ...