首页 > 其他分享 >线程优先级

线程优先级

时间:2024-04-09 13:22:36浏览次数:23  
标签:优先级 Thread start 线程 MyPriortiy new

线程调度器按照优先级决定应该调度哪个线程来执行,优先级高的只是获得调度的概率增加了,不一定每次都调度优先级高的

线程的优先级用数字来表示,范围是(1~10)
  1. Thread.MIN_PRIORITY=1;
  2. Thread.MAX_PRIORITY=10;
  3. Thread.NORM_PRIORITY=5;
    使用以下方法来改变或获取优先级
    get()priority或set()priority(int a)
优先级的设定建议在start()调度前
package StateThread;
//线程优先级测试类
// 状态线程
public class TestPriority {
    // 主函数
    public static void main(String[] args) {
        // 打印主线程的名称和优先级
        System.out.println(Thread.currentThread().getName() +"-->"+Thread.currentThread().getPriority());
        // 创建 MyPriortiy 实例
        MyPriortiy myPriortiy = new MyPriortiy();
        // 创建多个线程并分配相同的 MyPriortiy 实例
        Thread t1 = new Thread(myPriortiy);
        Thread t2 = new Thread(myPriortiy);
        Thread t3 = new Thread(myPriortiy);
        Thread t4 = new Thread(myPriortiy);
        Thread t5 = new Thread(myPriortiy);
        // 启动线程 t1
        t1.start();
        // 设置并启动线程 t2 的优先级
        t2.setPriority(2);
        t2.start();
        // 设置并启动线程 t3 的优先级为最小优先级
        t3.setPriority(Thread.MIN_PRIORITY);
        t3.start();
        // 设置并启动线程 t4 的优先级为最大优先级
        t4.setPriority(Thread.MAX_PRIORITY);
        t4.start();
        // 设置并启动线程 t5 的优先级为特定值
        t5.setPriority(9);
        t5.start();
    }
}

// 实现 Runnable 接口的 MyPriortiy 类
class MyPriortiy implements Runnable {
    // 重写 run 方法
    @Override
    public void run() {
        // 打印当前线程的名称和优先级
        System.out.println(Thread.currentThread().getName() +"-->"+Thread.currentThread().getPriority());
    }
}

image

标签:优先级,Thread,start,线程,MyPriortiy,new
From: https://www.cnblogs.com/gang-pao/p/18123745

相关文章

  • jmeter终极线程组波浪型,有一定的时间规律场景
    jp@gc-UltimateThreadGroup(终极线程组波浪型,有一定的时间规律场景)阶梯图波浪型场景    UltimateThreadGroup ===波浪型场景    在添加第二行时,初始化时间点,要大于等于上一行的所有时间之和====才能设计出波浪型场景    阶梯线程组:steppingthreadgro......
  • 线程状态观测
    NEW:尚未启动的线程处于此状态RUNNABLE:执行的线程处于此状态BLOCKED:被阻塞等待时锁定的线程处于此状态WAITING:正在等待另一个线程执行特定的线程处在此状态TIMED_WAITNG:正在等待另一个线程执行动作达到指定等待时间的线程处于此状态TERMINATED:已退出的线程处于此状态packa......
  • 一文详解ThreadLocal与线程间的数据传递
    一.ThreadLocalThreadLocal在并发编程中比较常用,在诸多中间件的源码中都能看到它的身影。对于ThreadLocal的说明先来一段官方解释:ThreadLocal提供的是一种线程局部变量。这些变量不同于其它变量的点在于每个线程在获取变量的时候,都拥有它自己相对独立的变量副本。ThreadLo......
  • 线程礼让
    线程礼让,让当前正在执行的线程暂停,但不阻塞将线程从运行状态转为就绪状态让CPU重新调度,礼让不一定成功,只要还是看CPU的调度。packageStateThread;publicclassTestYield{publicstaticvoidmain(String[]args){MyYields1=newMyYield();new......
  • C++要点细细梳理——trivial:运算符优先级、switch、临时变量默认赋值等
    1.运算符优先级在C语言中,运算符的优先级决定了在表达式中各个运算符的执行顺序。当一个表达式中有多个运算符时,优先级高的运算符会先被计算。如果两个运算符的优先级相同,那么它们的结合性(从左到右或从右到左)会决定它们的计算顺序。以下是一些基本的C语言运算符优先级(从......
  • JUC:ThreadPoolExecutor线程池的使用方法
    文章目录ThreadPoolExecutor线程池状态构造方法Executors工厂方法newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutor提交任务方法关闭任务方法ThreadPoolExecutor线程池状态线程池用高三位表示状态,第一位为符号位。TERMINATED>TIDYING>STOP>......
  • 线程休眠
    Sleep指定当前线程阻塞的毫秒数;Sleep存在异常InterruptedException;Sleep时间达到后线程进入就绪状态;每个对象都有一把锁,Sleep不会释放锁;以下代码为利用Sleep进行模拟倒计时packageStateThread;//模拟倒计时publicclassTestSleep2{publicstaticvoidmain(Strin......
  • JavaEE初阶Day 5:多线程(3)
    目录Day5:多线程(3)1.join2.再谈sleep3.线程的状态4.线程安全问题Day5:多线程(3)多线程在整个编程中都是非常核心非常重要的话题多核CPU客观的主流的需求多线程这里还是有一定难度/不少注意事项的回顾Thread创建的写法继承Thread,重写run实现Runnable,重写run......
  • 30_多线程
    多线程多线程简介​ 线程,是一种允许一个正在运行的程序同时执行不止一个任务的机制。不同线程看起来是并行运行的;Linux操作系统对线程进行异步调度,不断中断它们的执行以给其它线程执行的机会。​ 线程与进程的区别:线程是进程中的一个独立并发执行的路径,进程退出时,线程也会退......
  • Java多线程
    Process进程系统资源分配的单位Thread线程CPU调度和执行的单位1.继承Thread类packagedemo01;//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程//线程开启不一定立即执行,由cpu调度publicclassTestThread1extendsThread{@Overridep......