栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java多线程4:线程的优先级

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java多线程4:线程的优先级

线程的优先级

每个线程都有优先级,优先级可以表明该线程在程序里的重要性,优先级越高,就说明该线程越高级。当很多线程都处于就绪状态时,操作系统会优先选择优先级高的程序进行运行状态。但这并不意味着低优先级的得不到运行,只有高优先级的线程运行完毕才能执行他们,比如JVM中 垃圾回收的GC线程优先级就很低。

在Thread类中,Thread.MIN_PRIORITY (代表常量1),Thread.MAX_PRIORITY(代表常量10), Thread.NORM_PRIORITY(默认的常量5)

优先级就设置在Thread.MIN_PRIORITY到Thread.MAX_PRIORITY之间

;当线程未设置优先级时,此时为5。所有新产生的线程都继承父线程的优先级。
如图:

在当前程序中优先级5的线程A先执行,执行完后轮换给线程B,线程B执行完,若A还要执行,那么继续轮换给A

若A不执行,那么就轮换到更低优先级的线程C上;执行完后,若ABC都不执行,才能执行线程D.

线程的优先级可以用setPriority()方法来设置优先级

eg:

public static void setPriority(String threadName,int priority,Thread t){
    t.setPriority(priority);
    t.setName(threadName);
    t.start();
}

public class PriorityTest(){
    //...
    setPriority("threadA",5,threadA)
    setPriority("threadB",5,threadB)
    setPriority("threadC",4,threadC)
    setPriority("threadD",3,threadD)
}
//...

在上面例子中线程AB会优先执行,接着C 接着D

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号