Java 多線程優(yōu)先級實例詳解
Java 多線程優(yōu)先級實例詳解
線程的優(yōu)先級將該線程的重要性傳遞給調(diào)度器。盡管CPU處理現(xiàn)有線程集的順序是不確定的,但是調(diào)度器將傾向于讓優(yōu)先權(quán)最高的線程先執(zhí)行。
你可以用getPriority()來讀取現(xiàn)有線程的優(yōu)先級,并且在任何時刻都可以通過setPriority()來修改優(yōu)先級。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SimplePriorities implements Runnable {
private int countDown = 5;
/*Java語言規(guī)范第三版中對volatile的定義如下: java編程語言允許線程訪問共享變量,
為了確保共享變量能被準(zhǔn)確和一致的更新,線程應(yīng)該確保通過排他鎖單獨獲得這個變量。
Java語言提供了volatile,在某些情況下比鎖更加方便。如果一個字段被聲明成volatile,
java線程內(nèi)存模型確保所有線程看到這個變量的值是一致的。*/
private volatile double d;
private int priority;
public SimplePriorities(int priority){
this.priority = priority;
}
public String toString(){
//獲取當(dāng)前線程信息
return Thread.currentThread() + ":" + countDown;
}
@Override
public void run() {
//設(shè)置線程優(yōu)先級 1-10
Thread.currentThread().setPriority(priority);
while(true){
for(int i = 0;i<100000;i++){
d += (Math.PI + Math.E) / (double)i;
if(i00 == 0){
Thread.yield();
}
}
System.out.println(this.toString());
if(--countDown == 0)return;
}
}
public static void main(String[] args) {
ExecutorService exec = Executors.newCachedThreadPool();
//優(yōu)先級為1
exec.execute(new SimplePriorities(Thread.MIN_PRIORITY));
//優(yōu)先級為10
exec.execute(new SimplePriorities(Thread.MAX_PRIORITY));
exec.shutdown();
}
}
toString()方法被覆蓋,以便使用Thread.toString()方法來打印線程的名稱,線程的優(yōu)先級以及線程所屬的“線程組”。


感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
SpringBoot攔截器與文件上傳實現(xiàn)方法與源碼分析
其實spring boot攔截器的配置方式和springMVC差不多,只有一些小的改變需要注意下就ok了。本文主要給大家介紹了關(guān)于如何在Springboot實現(xiàn)登陸攔截器與文件上傳功能,需要的朋友可以參考下2022-10-10
SpringCloud項目的log4j2漏洞解決方案詳解流程
很多小伙伴因為Log4j2的驚爆0Day漏洞一時束手無策,這里提供最終解決方案可以進(jìn)行一個版本號的升級,感興趣的朋友來看看吧2022-04-04
關(guān)于Mybatis動態(tài)sql中test的坑點總結(jié)
這篇文章主要介紹了關(guān)于Mybatis動態(tài)sql中test的坑點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring Boot自定義配置實現(xiàn)IDE自動提示功能
這篇文章主要介紹了Spring Boot自定義配置實現(xiàn)IDE自動提示功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
SpringMVC中RequestBody注解的List參數(shù)傳遞方式
這篇文章主要介紹了SpringMVC中RequestBody注解的List參數(shù)傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
關(guān)于MVC的dao層、service層和controller層詳解
這篇文章主要介紹了關(guān)于MVC的dao層、service層和controller層詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

