Java 中 Thread 对象有一个优先级的概念,优先级被划分10个级别,
创建线程的时候,如果没有指定优先级,默认是5。
主线程的优先级也是5。优先级高的线程会比优先级低的线程获得更多的运行机会。
Thread 类定义了 3 个整形常量 MAX_PRIORITY、NORM_PRIORITY、MIN_PRIORITY
分别用于表示支持的最高优先级,正常优先级和最低优先级。
同时提供了一个 getPriority 方法来获取当前线程优先级。
public class PriorityDemo {
public static void main(String[] args) {
System.out.println("最大优先级:" + Thread.MAX_PRIORITY);
System.out.println("正常优先级:" + Thread.NORM_PRIORITY);
System.out.println("最小优先级:" + Thread.MIN_PRIORITY);
System.out.println("主线程优先级:" + Thread.currentThread().getPriority());
Thread t=new Thread();
System.out.println("创建一个线程默认的优先级:" + t.getPriority());
}
}
输出结果
最大优先级:10
正常优先级:5
最小优先级:1
主线程优先级:5
创建一个线程默认的优先级:5
线程优先级只是让线程理论上获得了更优先的运行机会,但是由于线程的运行是抢占式的,因此并不意味着一定优先执行。而且并不是所有的操作系统都支持优先级的设置,有些操作系统会直接忽略优先级的设置。因此在实际开发中,尽量不要去设置一个线程运行时的优先级,因为结果可能不是你想要的那样。
例如:对于CentOS 6.5来说,线程的优先级都是0,设置的线程优先级的值将会被忽略。
最后
以上就是烂漫河马最近收集整理的关于【并发编程】线程的优先级的全部内容,更多相关【并发编程】线程内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复