您好,登錄后才能下訂單哦!
本篇文章為大家展示了深入淺析Java中線程的優先級,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Java 線程優先級詳解及實例
操作系統基本采用時分的調度運行線程,操作系統會分出一個個時間片,線程會被分配到若干個時間片,當線程的時間片用完了就會發生線程調度,并且等待著下次調度,線程被分配到的時間片多少也就決定了線程使用處理器資源的多少,而線程優先級就是決定線程能夠分配多少處理器資源的線程屬性。
在Java多線程中,通過一個整形變量priority來控制優先級,優先級的范圍從1-10.默認是5,優先級越高越好。
public class Priority { public static void main(String[] args) { Thread t1 = new Mythread(); t1.setName("線程1"); t1.setPriority(1); //設置優先級 Thread t2 = new Mythread(); t2.setName("線程2"); t2.setPriority(10); //設置優先級 t1.start(); t2.start(); } } class Mythread extends Thread{ @Override public void run() { for(int i=0;i<10;i++){ System.out.println(getName()+"執行"+i+"次"); } } }
執行結果:
線程2執行0次 線程2執行1次 線程2執行2次 線程2執行3次 線程2執行4次 線程2執行5次 線程2執行6次 線程2執行7次 線程2執行8次 線程2執行9次 線程1執行0次 線程1執行1次 線程1執行2次 線程1執行3次 線程1執行4次 線程1執行5次 線程1執行6次 線程1執行7次 線程1執行8次 線程1執行9次
我們可以看到系統會優先執行線程1。但是也并不是每次都會優先執行線程1的,特別是兩個線程優先級區別不是很大的時候,線程優先級基本上作用不大。線程優先級不能作為程序正確性的依賴,因為操作系統可以完全不用理會java線程對于優先級的決定。
上述內容就是深入淺析Java中線程的優先級,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。