Java 多线程 线程的优先级

【Java多线程】线程优先级:优先级高,执行机会多 一般来说,优先级范围为1-10,优先级高的线程,在运行的时候将会获得更多的运行机会。 阅读详情

每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。(优先并不代表执行顺序,后面会【解释】)

在一个线程中开启另外一个新线程,则新开线程称为该线程的子线程,子线程初始优先级与父线程相同

Java线程的优先级是一个整数 (数字越大优先级越高) 其取值范围是 1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )

从图中可以看出新建线程的默认优先级是 NORM_PRIORITY = 5

这里写图片描述

源码 ↓
这里写图片描述

这里写图片描述

这里写图片描述

    public static void main(String[] args) throws InterruptedException {
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                out.println("\t" + Thread.currentThread().getName());
            }
        };

        Thread t1 = new Thread(runnable, "A");
        Thread t2 = new Thread(runnable, "B");
        Thread t3 = new Thread(runnable, "C");
        t1.setPriority(8);
        t2.setPriority(4);
        t3.setPriority(1);
        t1.start();
        t2.start();
        t3.start();
    }

输出 ↓ 可以看出上面的代码并没有什么卵用,并没有按照理想的顺序运行
这里写图片描述

线程的优先级仍然无法保障线程的执行次序。

只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。

如果CPU有空闲,即使是低优先级的线程,也可以得到足够的执行时间,接近满负荷执行。
如果CPU比较繁忙,优先级的作用就体现出来了,优先级高的线程能得到比较多的执行时间,优先级比较低的线程也能得到一些执行时间,但会少一些;CPU越繁忙,差异通常越明显。

Java多线程--Thread类的常用结构及线程优先级 阅读详情

相关推荐

[QT笔记]QTableView与QTableWidget表头设置实战对比

本文深入对比了QT开发中QTableView与QTableWidget在表头设置上的核心差异与实践方法。QTableWidget提供开箱即用的便捷API,适合快速开发;而QTableView遵循模型-视图架构,表头数据由模型管理,虽设置稍复杂但灵活性与扩展性更强。文章通过实战代码示例,详细解析了两种组件的适用场景、性能考量及常见避坑指南,帮助开发者根据项目需求做出高效选择。

weixin_29018335的博客 322

linux 实时线程优先级问题——数值越大优先级越高吗?

linux 实时线程优先级问题——数值越大优先级越高吗?   2012-06-03 15:14:23|  分类: linux内核开发 |字号 订阅      今天查看了linux下的实时线程,FIFO和RR策略的调度,遇到一个问题:      priority越大优先级越高呢?还是越小越高呢?      回答这个问题要明白一个问题,首先,linux2.6内核将

学无止境 2万+

瑞萨CS+仿真器高级配置指南:从原理到实战优化RX系列MCU调试

在嵌入式系统开发中,仿真器是进行早期验证和深度调试的核心工具。它通过精确模拟目标微控制器的指令集、内存和外设行为,构建了一个虚拟的硬件沙盒环境。其工作原理在于对CPU核心、时钟系统和外设接口的软件模拟,使开发者能在无物理硬件时进行代码逻辑验证、内存布局规划和时序分析。这项技术的核心价值在于大幅降低开发成本、加速问题定位,并支持复杂场景的复现与测试。在瑞萨RX系列MCU开发中,CS+集成开发环境内置的仿真器功能尤为强大。本文聚焦于**指令解码缓存**和**外设时钟比率**等关键配置的深度解析,阐述如何通过优化

cmff98425的博客 1121

Linux进程调度

一:Linux进程的四大要素 1:一段供进程执行的程序,该程序可以被多个进程执行。 2:独立的内核堆栈。 3:进程控制快(task_struct:有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。同时,这个结构还记录着进程所占用的各项资源。 4:独立的存储空间:即拥有专有的用户空间,除了前面的内核空间还有用户空间。 线程:只有前三条,没有第四条。 内核线程:完全没有用

tangkai177的专栏 741

WPS占用C盘空间解决方案与优化技巧

办公软件在长期使用过程中会产生大量缓存和历史文件,这些文件往往隐藏在系统目录中,导致磁盘空间被无声占用。以WPS为例,其版本历史备份、云同步缓存和模板库是主要空间占用源。通过分析文件存储机制,可以定位到具体的缓存路径,如AppData目录下的Kingsoft文件夹。针对这一问题,有效的解决方案包括手动清理、自动化脚本和注册表优化。对于需要持续监控的场景,可以结合PowerShell脚本和任务计划实现自动化管理。在实际应用中,这些技术不仅适用于WPS,也可迁移到其他办公软件的空间优化中,是每位IT运维人员和高

weixin_30788239的博客 458

麦克斯韦电磁场理论

1)从知识先后上说:麦克斯韦方程组为理解光的传播、反射、折射等现象提供了理论基础。不理解基础,怎么能理解上层建筑。2)从如何学懂上说,把基础学习的越牢,越深刻,后续学习上层建筑就会水到渠成一些,不会越学越多疑问。而是越学越少疑问。

weixin_55255438的博客 2825

Java线程优先级与线程控制详解

Java线程调度采用优先级机制(1-10),默认优先级为5,新建线程继承创建者优先级。通过setPriority()可调整优先级,但高优先级仅作为调度建议,不保证执行顺序。线程实现方式包括继承Thread类、实现Runnable接口或方法引用,各有适用场景。每个线程拥有独立栈空间,可通过-Xss参数设置大小,需平衡栈深度与线程数量。Java 9引入Thread.onSpinWait()优化短时自旋等待,适用于高响应场景。注意避免使用废弃的线程控制方法如stop(),推荐使用线程同步机制确保程序正确性。

静水深流 1103

傻白入门芯片设计,wafer/die/chip/cell(一)

芯片设计的一些基本概念

qq_46675545的博客 2万+

java线程优先级越高越先执行吗

不是优先级越高,线程就先执行  优先级反映的是线程占用资源的多少,优先级越高,占用的资源越多,性能越好

baidu_25845567的博客 3873

深入解析fio Benchmark测试:从源码到实践

本文深入解析fio Benchmark测试工具,从入门指南到源码架构分析,详细介绍了其核心模块、关键数据结构和I/O处理机制。通过实战案例展示如何优化存储性能测试,包括内存对齐、多线程调优等技巧,帮助开发者充分利用fio进行精准的存储性能评估。

weixin_42563415的博客 208

apollo自动驾驶进阶学习之:如何实现施工路段限速绕行及其参数调试

首先需要理解Planning模块是基于Scenario、Stage、Task这样的层次来进行的,即场景->步骤->具体的决策方法。Apollo可以应对自动驾驶所面临的不同道路场景,都是通过Scenario统一注册与管理。Scenario通过一个有限状态机来判断选择当前行车场景,每个Scenario下又有多个Stage,指当前场景下需要执行的粗略步骤。.........

qq_41593516的博客 6598

java线程的优先级是数字越大优先级越高_Java基础教程:多线程(5)-----线程的调度之优先级...

程序中的多线程是并发执行的,但这只是宏观现象。对于大多数计算机而言,CPU只有一个,在某个特定的时刻只能执行一条机器指令,多线程的每个线程只有得到CPU的使用权才能执行指令。Java虚拟机按照特定机制为多个线程分配CPU的使用权就是线程的调度。在计算机中,CPU的调度有两种调度模型,分别是分时调度模型和抢占式调度模型。所谓分时调度模型是指让所有的线程轮流获得CPU的使用权,并且平均分配每个线程占用...

weixin_29290963的博客 2455

AutosarMCAL开发——基于TC3x系列时钟系统浅析

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 889

Java多线程之线程的创建、优先级

Java多线程进程线程线程的生命周期创建线程线程的优先级 进程 正在运行中的程序。每个进程都拥有自己(独立)的系统资源、内存空间和地址空间 线程 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。 线程的生命周期 新建状态(new )、可运行状态(runnable)、运行状态(running )、阻塞状态(blocked)、终止状态(dead) 当线程处于新建状态的时候,表明此时线程的对象实例已经被创建,但是尚未取得运行线程所需要的资源 产生了对象的实例之后

weixin_43347737的博客 808

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java多线程以及线程优先级

文章目录多线程的实现获取和设置线程名称线程优先级 多线程的实现 实现多线程只需要继承Thread类即可,重写run()方法,封装需要被线程执行的代码 public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 11; i++) { ...

hahaha 751

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java多线程 修改优先级_JAVA多线程04-基础篇-优先级

一、线程优先级线程优先级的范围是1~10,默认优先级是5,线程优先级的主要作用是让调度器优先调度高优先级线程,但这不意味着低优先级线程得不到执行,通常情况不需要修改线程优先级,Thread类中有3个优先级的常量:二、源码分析public final void setPriority(int newPriority) {ThreadGroup g;//线程所属的线程组checkAccess();//...

weixin_26833139的博客 291

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java多线程——线程的优先级PRIORITY

简单讲解多线程之间的优先级关系

2501_90745824的博客 308

Java多线程:线程优先级,同步,死锁

Java多线程(二) 1.线程优先级 java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程的优先级数字表示范围:1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NORM_PRIORITY = 5; 获取优先级:getPriority(); 改变优先级:setPriority(int xxx); 优先级低表示被CPU调度的概率低,无法保证优先级高一定先执行

zxh1996的博客 588

Java多线程优先级设置

Java多线程优先级设置 Java多线程中可设置各个线程优先级,优先级越高,线程被优先执行的概率越大。很简单,调用setPriority函数即可 package com.threadtest; public class TestPriority { public static void main(String[] args) { PThread t1

神码不是浮云 941

【Java】多线程之线程休眠、让步、等待、停止及优先级

目录 多线程常用操作方法 线程命名与取得 线程休眠方法sleep() —— 单位为毫秒(Long) 线程让步(yield()方法) 等待其他线程终止:join() 线程停止 线程优先级 多线程常用操作方法 线程命名与取得 多线程的运行状态是不确定的,所以对于多线程必须有一个明确标识出线程对象的信息,这个信息往往通过名称来描述,在Thread类中提供有以下线程名称方法 I....

qq_43464809的博客 729

Java多线程优先级

线程的优先级将该线程的重要性传递给调度器。尽管CPU处理现有线程集的顺序是不确定的,但是调度器将倾向于让优先权最高的线程先执行。你可以用getPriority()来读取现有线程的优先级,并且在任何时刻都可以通过setPriority()来修改优先级。import java.util.concurrent.ExecutorService; import java.util.concurrent.Exe

IsResultXaL的博客 1078

java 线程优先级_Java多线程——线程的优先级和生命周期

Java多线程——线程的优先级和生命周期摘要:本文主要介绍了线程的优先级以及线程有哪些生命周期。部分内容来自以下博客:https://www.cnblogs.com/sunddenly/p/4106562.html线程的优先级线程的优先级及设置线程的优先级是为了在多线程环境中便于系统对线程的调度,优先级越高先执行机会越大,并不是一定先执行。线程的优先级可以理解为线程抢占CPU时间片的概率,并不能保...

weixin_39926402的博客 329

多线程赛马程序Java_Java线程优先级示例-在各优先级线程间“赛马”

Java 虚拟机在调度各线程运行时,并非每个线程的运行机会相同,调度机制根据各线程的优先级调度各线程。因而,优先级高的线程获得的运行时间就多,优先级低的线程获得的运行时间就少。本例演示了不同优先级的线程在完成同一个任务时的不同进度,来验证上面的结论。高优先级的线程获得运行的机会多。同时开始的两个不同优先级的线程,在做同一个任务时的不同进度如图所示:实现思路:Java 的线程类java.lang.T...

weixin_32691823的博客 286

java多线程 修改优先级_Java多线程-线程的调度(优先级)

与线程休眠类似,线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。在一个线程中开启另外一个新线程,则新开线程称为该线程的子线程,子线程初始优先级与父线程相同。packagecn.thread;/***线程的调度(优先级)**@author林计钦*@v...

weixin_39614637的博客 416

java线程池多线程优先级_Java线程优先级

java线程池多线程优先级 Java线程优先级 (Java Thread Priorities) Priority of a thread describes how early it gets execution and selected by the thread scheduler. In Java, when we create a thread, always a priority i...

cunfen6312的博客 5109

java多线程优先级

最近看一本java初级书中关于多线程优先级中写道 :优先级高的线程先运行,待其运行完毕才会执行优先级较低的线程。而我在测试一个简单多线程优先级案例的时候发现并不是这样,优先级低的也会在优先级高的执行完毕之前执行。而且看起来显示随机执行的。测试代码如下:public class Prioryty1{ public static void main(String[] args){ f...

qq_36576735的博客 1074
上一篇: Java 多线程 - 守护线程
下一篇: Quartz 教程
httpfirewall
博客等级 码龄10年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值