Java基础学习:多线程16( 线程的优先级 )

Java基础学习:多线程16

  • 线程的优先级:

    • Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行;

       

    • 线程的优先级用数字表示:范围从1 - 10;

      • Thread.MIN_PRIORITY=1;

      • Thread.MAX_PRIORITY=10;

      • Thread.NORM_PRIORITY=5;

         

    • 使用以下方式改变或获取优先级:

      • getPriority();

      • setPriority ( int X );

         

  • 代码案例:


    /**
    * 测试线程的优先级:
    *
    */
    public class TestPriority {

       public static void main(String[] args) {

           //主线程的优先级:默认优先级
           System.out.println(Thread.currentThread().getName()+"-->"+Thread.currentThread().getPriority());

           MyPriority myPriority=new MyPriority();

           Thread t1=new Thread(myPriority);
           Thread t2=new Thread(myPriority);
           Thread t3=new Thread(myPriority);
           Thread t4=new Thread(myPriority);

           //先设置优先级,再启动
           t1.start();

           t2.setPriority(1);
           t2.start();

           t3.setPriority(4);
           t3.start();

           t4.setPriority(Thread.MAX_PRIORITY);
           t4.start();


      }

    }


    //线程类
    class MyPriority implements Runnable{
       
       @Override
       public void run() {
           System.out.println(Thread.currentThread().getName()+"-->"+Thread.currentThread().getPriority());
      }
    }

     

  • 笔记:

    • 优先级低只是意味着获得调度的概率低,并不是优先级低就不会被调用了,这都是看CPU的调度;

 

 

posted @   gzs1024  阅读(182)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示