zoukankan      html  css  js  c++  java
  • 线程的优先级

               一、介绍       

       在Java中,每一个线程都有一个优先级,默认是一个线程继承它的父线程的优先级。一个线程的默认优先级为NORM_PRIORITY = 5

      设置优先级的方法setPriority() ,可设置的值如下:  

    1
    2
    3
    static int MAX_PRIORITY = 10;//线程可以具有的最高优先级(执行概率最高)
    static int MIN_PRIORITY = 1; //线程可以具有的最低优先级(执行概率最低)
    static int NORM_PRIORITY = 5//分配给线程的默认优先级

       线程的优先级:不是说哪个线程优先执行,如果设置某个线程的优先级高。那就是有可能被执行的概率高。并不是优先执行


     二、实例       

    线程优先级实例代码:这里设置线程1为最高优先级(被执行的概率高) 设置线程2为最低优先级

    这里设置了线程1最高和线程2最低优先级后,并不是说线程1就优先执行等到线程1执行完才执行线程2。而是说线程1被执行的概率高。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //线程类
    public class PriorityThread implements Runnable{
        private boolean flag = true;
        private int num=0;
        @Override
        public void run() {
            while(flag){
                System.out.println(Thread.currentThread().getName()+"-->"+num++);
            }
        }
        public void stop(){
            this.flag = !this.flag;
        }
    }
    //测试线程优先级
    public class PriorityDemo {
        public static void main(String[] args) throws InterruptedException {
            PriorityThread it1 = new PriorityThread();
            PriorityThread it2 = new PriorityThread();
            Thread proxy1 = new Thread(it1,"线程1");
            Thread proxy2 = new Thread(it2,"线程2");
            proxy1.setPriority(Thread.MAX_PRIORITY);//设置为最高优先级
            proxy2.setPriority(Thread.MIN_PRIORITY);//设置为最低优先级
            proxy1.start();
            proxy2.start();
            Thread.sleep(1000);
            it1.stop();
            it2.stop();
        }
    }

    执行结果如下:

    线程1-->47755   统计共执行了4685次

    线程2-->19211   统计共执行了1469次


     三、总结       

    1、每个线程都有一个默认的优先级,默认情况下是NORM_PRIORITY = 5

    2、线程的优先级表示的是被执行的概率,并不是绝对的优先执行。

    3、设置线程优先级的方法setPriority(Thread.MAX_PRIORITY);







  • 相关阅读:
    linux平台下Hadoop下载、安装、配置
    C#实现单例,保证线程安全
    编写response生成图片验证码时,报import com.sun.image.codec.jpeg.JPEGCodec;
    Java中static是什么意思,有什么作用?
    使用内部类和闭包
    在数据结构中存储对象
    Java学习——响应用户输入
    提升代码质量——结构化编程
    各种排序总结(六)归并排序
    各种排序总结(五)快速排序
  • 原文地址:https://www.cnblogs.com/meet/p/5290938.html
Copyright © 2011-2022 走看看