這篇文章主要介紹了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關於執行緒優先權的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!