三.線程優先級和守護進程
阿新 • • 發佈:2017-09-28
系統 src 順序 設置 .com pri cnblogs 優先級 就會
1.線程的優先級
在操作系統中,線程可以劃分優先級,優先級高的線程得到的CPU資源較多,也是CPU優先執行優先級較高的線程對象中的任務。
設置線程優先級有助於幫“線程規劃器”確定在下一次選擇哪一個線程來優先執行。
設置優先級使用setPriority()方法。
線程優先級的繼承性
java中線程的優先級具有繼承性,比如A啟動B,則B的優先級和A相同。
優先級具有規則性
雖然使用setPriority()方法可以設置線程的優先級,但還沒有看到設置優先級所帶來的效果
線程2:
高優先級的線程總是大部分先執行完,但不代表高優先級的線程全部先執行完。不要以為MyThread線程被main線程調用就會先執行完,出這樣的結果完全是MyThread1的優先級是10造成的。
當線程的優先級差別很大時,誰先執行完和代碼的調用順序無關。
優先級具有隨機性
守護進程
java線程中有兩種線程,一種是用戶線程,一種是守護線程。
守護線程是一種特殊的線程,當線程中不存在非守護線程時,守護線程自動銷毀。典型的守護線程是垃圾回收線程。任何一個守護線程都是在整個JVM中所有的非守護線程的“保姆”,只要當前JVM實例中存在任何一個非守護線程沒有結束,守護線程就在工作,只有等最後一個非守護線程結束時,守護線程才隨著JVM一同結束工作。
三.線程優先級和守護進程