導航:首頁 > 編程語言 > java設置線程優先順序

java設置線程優先順序

發布時間:2022-08-31 15:15:00

❶ 求教java 線程優先順序和執行順序問題!!

優先順序高的線程是獲得較多的執行機會,優先順序低的線程是獲得較少的執行機會。你先啟動的優先順序低的幾個線程,最後才啟動的優先順序高的。優先順序低的線程是可以先執行的,只不過時間短罷了。如果你這樣寫,是測試不出優先順序高低的,應該在run() 中執行循環輸出(比如1-100)才能看出執行時間長短,否則一下就執行完了。

雖然java 提供了10個優先順序,但這些優先順序需要操作系統的支持。不同操作系統上優先順序並不相同,也不能很好地和java的10個優先順序對應。例如:window2000就只提供了7個優先順序。所以應該使用MAX_PRIORITY,MIN_PRIORITY,NORM_PRIORITY來設置優先順序 。

❷ java 線程 優先順序設置 setPriority() 的參數

運算符優先順序,你需要加一個括弧試試,
System.out.println("Thread.NORM_PRIORITY==10 "+(Thread.NORM_PRIORITY==5));

❸ java線程執行順序問題

線程執行貌似沒有順序,根據CPU的資源使用情況而定,不過你可以:

用線程之間通信來解決上述的業務,如使用共享式變數的方式控制其業務順序!!

❹ Java線程優先順序問題,為什麼我設置了t1的優先順序為8,運行結果卻是t2優先

這個優先順序設置只能提高該線程的優先概率,不能讓一個線程執行完才執行下一個。

❺ 在java中,返回線程的優先順序的方法是什麼

創建一個繼承Thread的簡單類:
public class SetPriorityDemo extends Thread {

@Override
public void run() {

for(int i=0;i<100;i++)
{
System.out.println(getName()+"--"+i);
}
}
}
2
在主線程中創建兩個線程,並對其進行優先順序的設置:
ublic class SetPriorityMain {

public static void main(String[] args) {

SetPriorityDemo spd = new SetPriorityDemo();
SetPriorityDemo spd2 = new SetPriorityDemo();
spd.getPriority();// 5 ,
spd.setName("hahah");
spd2.setName("hehhe");
spd.setPriority(10);//10
spd2.setPriority(1);//1
spd.start();
spd2.start();
}

}
3
這句語句在控制台中得到的結果是:5; 這就說明了線程默認的優先順序是5;
4
spd.setPriority(10);//10
spd2.setPriority(1);//1
10是最大的優先順序,最優先,而1是最小的優先順序,所以最慢!
5
控制台運行結果如下:
hahah--0
hehhe--0
hahah--1
hehhe--1
hahah--2
hehhe--2
hahah--3
hehhe--3
hahah--4
hahah--5
hehhe--4
hahah--6
hahah--7
hahah--8
hahah--9
hahah--10
hahah--11
hahah--12
hahah--13
hehhe--5
hehhe--6
hahah--14
hahah--15

.

❻ java線程優先順序有什麼意義




》》。。。而sleep之後就會隨機排序了,優先順序此時就不起作用了,有沒有解決的辦法?
其中一個辦法是讓每一個線程記得必須比它先完成的另一個線程,
然後在必要時強制它放棄執行一直到那另一個線程執行完為止。 比如:

class CustomThread extends Thread {
private Thread 先完;

CustomThread(String name, Thread 先完) {
super(name);
this.先完 = 先完;
}

public void run() {
System.out.println(this.getName());
try {
sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}

if (先完 != null)
try {
先完.join();
} catch (InterruptedException e) {}

System.out.println("NAME: " + this.getName() + " Bye");
}
}

class MultiThread {
public static void main(String args[]) throws InterruptedException {
CustomThread thread1 = new CustomThread("first",null);
CustomThread thread2 = new CustomThread("second",thread1);
CustomThread thread3 = new CustomThread("third",thread2);
CustomThread thread4 = new CustomThread("fourth",thread3);
thread1.setPriority(Thread.MAX_PRIORITY);
thread2.setPriority(Thread.MAX_PRIORITY-1);
thread3.setPriority(Thread.MAX_PRIORITY-2);
thread4.setPriority(Thread.MAX_PRIORITY-3);
thread1.start();
thread2.start();
thread3.start();
thread4.start();
}
}

4 等 3、3 等 2、。。。 串聯成單一線程了,所以如果情況允許的話,
把所有必須順序執行的任務集合在單一線程里(比如留在 main 里)是另一個辦法。

》》。。。優先順序到底有什麼用處?
輕易地讓程序即使在非常忙碌的時候也能迅速處理使用者的輸入(該輸入也許是調整某項操作的優先順序:)、編寫游戲時更方便地實現戰場上級別較高的一方優先攻擊、等等。


❼ JAVA多線程優先順序運行順序的問題

這個。。你不必糾結。。
深入說的話,其實。。很深。。
首先說 線程優先順序,並不能保證優先順序高的先運行,也不保證優先順序高的更多的分配CPU時間,只是對系統的建議而已,到底運行哪個,是操作系統決定的,都不是java說了算的。
另外java只能保證在線程內部看起來是順序執行你的代碼的,並不能保證從其他線程看來這個是按照你編碼順序執行的。。

閱讀全文

與java設置線程優先順序相關的資料

熱點內容
下行 電影在線觀看 瀏覽:786
歐美大尺度男同電影 瀏覽:985
張學友最後大佬電影 瀏覽:777
心理罪中廖亞凡懷了孩子 瀏覽:844
伺服器如何開許可權設置密碼 瀏覽:271
申請資料填寫小程序源碼 瀏覽:177
伺服器怎麼私信別人 瀏覽:994
phpxdebug關閉 瀏覽:690
能看的網址大家都懂的 瀏覽:287
安卓程序員開發經驗 瀏覽:660
伺服器返回超時是怎麼回事 瀏覽:653
網關後dns伺服器有什麼用 瀏覽:607
line連接不上伺服器怎麼辦 瀏覽:862
付費電影免費下載 瀏覽:607
反編譯flv 瀏覽:939
python替換指定位置 瀏覽:337
有名txt下載寶書網 瀏覽:197
飛機app安卓怎麼注冊 瀏覽:801
電影院默認場區什麼意思 瀏覽:657
韓國 禁忌 姐弟愛唯美電影 瀏覽:82