<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
執行緒被稱為“最小的處理單元”,是一個輕量級的子程序,分配了一些需要執行的工作。執行緒共用分配給它們的相同記憶體插槽,並且彼此獨立,因此促進了多工處理。但是,當多個執行緒在共用記憶體插槽上執行時,必然會發生資源競爭。為了避免這種競爭,從而實現高吞吐量,引入了執行緒優先順序的概念。當多個任務在同一個系統上執行時,它具有重要意義。“執行緒排程器根據優先順序分配執行執行緒”。
JVM(JAVA虛擬機器器)預設或由程式設計師明確地決定執行緒的優先順序。優先順序在1到10之間,當我們想給執行緒最高優先順序時,就分配10。上下文切換有助於根據優先順序順序從執行緒1過渡到執行緒2等等。
注意:可能有兩個或更多執行緒被分配了相同的優先順序,那麼它們的執行取決於作業系統。例如,Windows使用迴圈演演算法來處理這種情況。
Java執行緒優先順序的變數
JAVA中以宏的形式預先儲存了三個主要變數,如下所述-
Public
”型別的存取修飾符。此變數的值為1。這是為了分配一個優先順序最低的執行緒。Public
”型別的存取修飾符。該變數的值為5。這是為了分配一個具有正常優先順序的執行緒。當開發人員未明確分配優先順序時,它是預設優先順序。Public
”型別的存取修飾符。該變數的值為10。這是為了分配一個具有最高優先順序的執行緒。與獲取和設定優先順序相關的一些功能包括:
Public Final int getPriority()
:此函數用於獲取請求的任何執行緒的優先順序。此函數返回一個整數,因為其返回型別為“int”。整數的範圍可以在1到10之間。該功能是公開的和最終的。Public Final void setPriority(int newPriority)
:此函數用於設定請求的任何執行緒的優先順序。該函數將整數作為引數,函數定義中的引數原型中也提到了這一點。引數整數的範圍可以在1到10之間。該功能是公開的和最終的。以下是java執行緒優先順序的範例:
下面是一些範例,使用上面已經定義的變數和JAVA中可用的現成函數來演示執行緒優先順序的概念。
程式碼:
public class test extends Thread{ public void run (){ System.out.println ( "The name of thread running curremtly is :"+Thread.currentThread ().getName ()); System.out.println ( "The priority od thread running currently is:"+Thread.currentThread ().getPriority ()); } public static void main (String args[]){ test t1=new test (); test t2=new test (); test t3=new test (); t1.setPriority (Thread.MIN_PRIORITY); t2.setPriority (Thread.MAX_PRIORITY); t3.setPriority (Thread.NORM_PRIORITY); t1.start (); t2.start (); t3.start (); } }
輸出:
範例2:
下面是一個使用者定義的優先順序定義和列印範例。
程式碼:
public class test2 extends Thread { public void run () { System.out.println ( " The control is under run function now..."); } public static void main (String args[]) { // Here we are creating threads using the constructors. test2 t1=new test2 (); test2 t2=new test2 (); // setpriority () function is used below along with the parameter to set the prioirity. t1.setPriority (2); t2.setPriority (9); // Here we are coding on how to display output strings. System.out.println ( " The priority assigned to thread t1 is: " + t1.getPriority ()); System.out.println ( "The priority assigned to thread t2 is: " + t2.getPriority ()); // the run () function is defined above will be called via start () function and print the strinf which is there in it. t1.start (); } }
輸出:
注意:優先順序應嚴格在1到10之間。如果優先順序超出此範圍,編譯器將丟擲以下錯誤。當使用setPriority()函數設定執行緒t2的優先順序時,13被賦予了一個優先順序,而不是9。
異常情況:
Exception in thread 「main」 java.lang.IllegalArgumentException at java.base/java.lang.Thread.setPriority (Thread.java:1141) at test2.main (test2.java:14)
多執行緒和將優先順序分配給以下執行緒有很多好處:
這是在同一個系統中操作多個任務的廣泛使用且高效的方法之一。由於執行緒共用記憶體,因此這種記憶體有效的方式也是如此。我們可以在系統中執行多個執行緒,但這可能會混淆處理器,首先選擇哪個執行緒。通過為執行緒分配優先順序,這個問題得以解決。執行緒繼續執行,直到它完成或被優先順序更高的執行緒中斷。此功能與作業系統密切配合。
到此這篇關於Java執行緒優先順序變數及功能的文章就介紹到這了,更多相關Java執行緒優先順序內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45