Java 線程優(yōu)先級詳解及實例
Java 線程優(yōu)先級詳解及實例
操作系統(tǒng)基本采用時分的調(diào)度運行線程,操作系統(tǒng)會分出一個個時間片,線程會被分配到若干個時間片,當線程的時間片用完了就會發(fā)生線程調(diào)度,并且等待著下次調(diào)度,線程被分配到的時間片多少也就決定了線程使用處理器資源的多少,而線程優(yōu)先級就是決定線程能夠分配多少處理器資源的線程屬性。
在Java多線程中,通過一個整形變量priority來控制優(yōu)先級,優(yōu)先級的范圍從1-10.默認是5,優(yōu)先級越高越好。
public class Priority {
public static void main(String[] args) {
Thread t1 = new Mythread();
t1.setName("線程1");
t1.setPriority(1); //設置優(yōu)先級
Thread t2 = new Mythread();
t2.setName("線程2");
t2.setPriority(10); //設置優(yōu)先級
t1.start();
t2.start();
}
}
class Mythread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(getName()+"執(zhí)行"+i+"次");
}
}
}
執(zhí)行結(jié)果:
線程2執(zhí)行0次 線程2執(zhí)行1次 線程2執(zhí)行2次 線程2執(zhí)行3次 線程2執(zhí)行4次 線程2執(zhí)行5次 線程2執(zhí)行6次 線程2執(zhí)行7次 線程2執(zhí)行8次 線程2執(zhí)行9次 線程1執(zhí)行0次 線程1執(zhí)行1次 線程1執(zhí)行2次 線程1執(zhí)行3次 線程1執(zhí)行4次 線程1執(zhí)行5次 線程1執(zhí)行6次 線程1執(zhí)行7次 線程1執(zhí)行8次 線程1執(zhí)行9次
我們可以看到系統(tǒng)會優(yōu)先執(zhí)行線程1。但是也并不是每次都會優(yōu)先執(zhí)行線程1的,特別是兩個線程優(yōu)先級區(qū)別不是很大的時候,線程優(yōu)先級基本上作用不大。線程優(yōu)先級不能作為程序正確性的依賴,因為操作系統(tǒng)可以完全不用理會java線程對于優(yōu)先級的決定。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
mybatis plus開發(fā)過程中遇到的問題記錄及解決
這篇文章主要介紹了mybatis plus開發(fā)過程中遇到的問題記錄及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
SpringBoot項目中java -jar xxx.jar沒有主清單屬性的解決方法
這篇文章主要給大家介紹了SpringBoot項目中java -jar xxx.jar沒有主清單的解決方法,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-01-01

