1. 程式人生 > >三.線程優先級和守護進程

三.線程優先級和守護進程

系統 src 順序 設置 .com pri cnblogs 優先級 就會

1.線程的優先級

  在操作系統中,線程可以劃分優先級,優先級高的線程得到的CPU資源較多,也是CPU優先執行優先級較高的線程對象中的任務。

  設置線程優先級有助於幫“線程規劃器”確定在下一次選擇哪一個線程來優先執行。

  設置優先級使用setPriority()方法。

技術分享

技術分享

線程優先級的繼承性

  java中線程的優先級具有繼承性,比如A啟動B,則B的優先級和A相同。

優先級具有規則性

雖然使用setPriority()方法可以設置線程的優先級,但還沒有看到設置優先級所帶來的效果

技術分享

線程2:

技術分享

技術分享

高優先級的線程總是大部分先執行完,但不代表高優先級的線程全部先執行完。不要以為MyThread線程被main線程調用就會先執行完,出這樣的結果完全是MyThread1的優先級是10造成的。

當線程的優先級差別很大時,誰先執行完和代碼的調用順序無關。

優先級具有隨機性

技術分享

守護進程

java線程中有兩種線程,一種是用戶線程,一種是守護線程。

守護線程是一種特殊的線程,當線程中不存在非守護線程時,守護線程自動銷毀。典型的守護線程是垃圾回收線程。任何一個守護線程都是在整個JVM中所有的非守護線程的“保姆”,只要當前JVM實例中存在任何一個非守護線程沒有結束,守護線程就在工作,只有等最後一個非守護線程結束時,守護線程才隨著JVM一同結束工作。

技術分享

技術分享

技術分享

三.線程優先級和守護進程