ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

6.7Java多线程优先级(priority)

2021-06-07 21:36:44  阅读:211  来源: 互联网

标签:PRIORITY Java Thread 6.7 start 线程 new 优先级 多线程


6.7Java多线程优先级(priority)

Java线程调度特点

  • 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程

  • 线程调度器按照线程的优先级决定应调度哪个线程来执行

  • 线程的优先级范围:

    • Thread.MIN PRIORITY = 1
    • Thread.MAX PRIORITY = 10
    • Thread NORM PRIORITY = 5

获得或设置线程对象的优先级

int getPriority();
void setPriority(int newPriority);

特点:

  • 优先级设定建议再start调用之前

  • 优先级低只是获得调度的概率低,不是绝对先调用优先级高的线程后调用优先级低的线程

线程状态特点:
package iostudy.priority;

/**
* 测试线程的优先级1-10
* 1、Normal priority--->默认是5,所有线程默认的值都是5
* 2、Min priority--->1
* 3、Max priority--->10
*/
public class PriorityTest {
   public static void main(String[] args) {
       /*获取线程等级*/
       System.out.println(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, "秃笔南玻思锐");
       Thread t5 = new Thread(myPriority, "秃笔南玻佛");
       Thread t6 = new Thread(myPriority, "秃笔南玻fai务");

       /*设置线程优先级,并且设置再启动之前*/
       t1.setPriority(Thread.MAX_PRIORITY);
       t2.setPriority(Thread.MAX_PRIORITY);
       t3.setPriority(Thread.MIN_PRIORITY);
       t4.setPriority(Thread.MIN_PRIORITY);
       t5.setPriority(Thread.MAX_PRIORITY);
       t6.setPriority(Thread.MAX_PRIORITY);

       /*启动线程--->调用start方法*/
       t1.start();
       /*多线程启动*/
       t2.start();
       t3.start();
       t4.start();
       t5.start();
       t6.start();
       /*
       待会创建多个线程
       并且需要设置线程优先级
       优先级不代表绝对的线程执行先后顺序
       优先级高只代表执行的时间片可能多一些、早一些
        */
  }
}

/**
* 创建线程类
* @since JDK 1.8
* @date 2021/6/7
* @author Lucifer
*/
class MyPriority implements Runnable{

   /*重写run方法*/
   @Override
   public void run(){
       System.out.println(Thread.currentThread().getName() + "--->" + Thread.currentThread().getPriority());
       /*线程礼让*/
       Thread.yield();
  }
}

 

标签:PRIORITY,Java,Thread,6.7,start,线程,new,优先级,多线程
来源: https://www.cnblogs.com/JunkingBoy/p/14860610.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有