返回顶部
首页 > 资讯 > 精选 >Java线程优先级变量及功能实例分析
  • 900
分享到

Java线程优先级变量及功能实例分析

2023-07-02 08:07:12 900人浏览 独家记忆
摘要

这篇文章主要介绍“Java线程优先级变量及功能实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java线程优先级变量及功能实例分析”文章能帮助大家解决问题。前言:线程被称为“最小的处理单元”,

这篇文章主要介绍“Java线程优先级变量及功能实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java线程优先级变量及功能实例分析”文章能帮助大家解决问题。

前言:

线程被称为“最小的处理单元”,是一个轻量级的子进程,分配了一些需要执行的工作。线程共享分配给它们的相同内存插槽,并且彼此独立,因此促进了多任务处理。但是,当多个线程在共享内存插槽上运行时,必然会发生资源竞争。为了避免这种竞争,从而实现高吞吐量,引入了线程优先级的概念。当多个任务在同一个系统上运行时,它具有重要意义。“线程调度器根据优先级分配执行线程”。

JVM(JAVA虚拟机)默认或由程序员明确地决定线程的优先级。优先级在1到10之间,当我们想给线程最高优先级时,就分配10。上下文切换有助于根据优先级顺序从线程1过渡到线程2等等。

注意:可能有两个或更多线程被分配了相同的优先级,那么它们的执行取决于操作系统。例如,windows使用循环算法来处理这种情况。

Java线程优先级的变量

JAVA中以宏的形式预先保存了三个主要变量,如下所述-

  • Public Static int MIN_PRIORITY:这是一个静态变量,带有“Public”类型的访问修饰符。此变量的值为1。这是为了分配一个优先级最低的线程。

  • Public Static int NORM_PRIORITY:这是一个静态变量,带有“Public”类型的访问修饰符。该变量的值为5。这是为了分配一个具有正常优先级的线程。当开发人员未明确分配优先级时,它是默认优先级。

  • Public Static int MAX_PRIORITY:这是一个静态变量,带有“Public”类型的访问修饰符。该变量的值为10。这是为了分配一个具有最高优先级的线程。

与获取和设置优先级相关的一些功能包括:

  • Public Final int getPriority():此函数用于获取请求的任何线程的优先级。此函数返回一个整数,因为其返回类型为“int”。整数的范围可以在1到10之间。该功能是公开的和最终的。

  • Public Final void setPriority(int newPriority):此函数用于设置请求的任何线程的优先级。该函数将整数作为参数,函数定义中的参数原型中也提到了这一点。参数整数的范围可以在1到10之间。该功能是公开的和最终的。

Java线程优先级示例

以下是java线程优先级的示例:

下面是一些示例,使用上面已经定义的变量和JAVA中可用的现成函数来演示线程优先级的概念。

代码:

public class test extends Thread{public void run (){System.out.println ( "The name of thread running curremtly is :"+Thread.currentThread ().getName ());System.out.println ( "The priority od thread running currently is:"+Thread.currentThread ().getPriority ());}public static void main (String args[]){test t1=new test ();test t2=new test ();test t3=new test ();t1.setPriority (Thread.MIN_PRIORITY);t2.setPriority (Thread.MAX_PRIORITY);t3.setPriority (Thread.NORM_PRIORITY);t1.start ();t2.start ();t3.start ();}}

输出:

Java线程优先级变量及功能实例分析

示例2:

下面是一个用户定义的优先级定义和打印示例。

代码:

public class test2 extends Thread{public void run (){System.out.println ( " The control is under run function now...");}public static void main (String args[]){// Here we are creating threads using the constructors.test2 t1=new test2 ();test2 t2=new test2 ();// setpriority () function is used below along with the parameter to set the prioirity.t1.setPriority (2);t2.setPriority (9);// Here we are coding on how to display output strings.System.out.println ( " The priority assigned to thread t1 is: " + t1.getPriority ());System.out.println ( "The priority assigned to thread t2 is: " + t2.getPriority ());// the run () function is defined above will be called via start () function and print the strinf which is there in it.t1.start ();}}

输出:

Java线程优先级变量及功能实例分析

注意:优先级应严格在1到10之间。如果优先级超出此范围,编译器将抛出以下错误。当使用setPriority()函数设置线程t2的优先级时,13被赋予了一个优先级,而不是9。

异常情况:

Exception in thread “main” java.lang.IllegalArgumentExceptionat java.base/java.lang.Thread.setPriority (Thread.java:1141)at test2.main (test2.java:14)

Java线程优先级的优势

多线程和将优先级分配给以下线程有很多好处:

  • 它允许在系统中同时执行多个操作,以及线程的优先级。例如,用户正在网上冲浪,但在安装新软件时突然中断了系统。在这种情况下,优先考虑重新启动系统,而不是上网。

  • 如果程序员没有明确定义线程优先级,JAVA线程将从父线程继承其优先级。存在绕过下游线程中的优先级并保持对称性的优先级保留。这使得程序员很容易调试程序。

  • 它使代码更简单,因此易于维护。

  • 通过分配优先级,它使上下文切换的工作变得更加容易。

关于“Java线程优先级变量及功能实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java线程优先级变量及功能实例分析

本文链接: https://lsjlt.com/news/340566.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java线程优先级变量及功能实例分析
    这篇文章主要介绍“Java线程优先级变量及功能实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java线程优先级变量及功能实例分析”文章能帮助大家解决问题。前言:线程被称为“最小的处理单元”,...
    99+
    2023-07-02
  • Java线程优先级变量及功能
    目录前言:Java线程优先级示例Java线程优先级的优势结论前言: 线程被称为“最小的处理单元”,是一个轻量级的子进程,分配了一些需要执行的工作。线程共享分配...
    99+
    2024-04-02
  • 深入浅析Java中线程的优先级
    本篇文章为大家展示了深入浅析Java中线程的优先级,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java 线程优先级详解及实例操作系统基本采用时分的调度运行线程,操作系统会分出一个个时间片,线程会被...
    99+
    2023-05-31
    java 线程 优先级
  • 深入浅析Java中多线程优先级
    这篇文章给大家介绍深入浅析Java中多线程优先级,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java 多线程优先级实例详解线程的优先级将该线程的重要性传递给调度器。尽管CPU处理现有线程集的顺序是不确定的,但是调度器...
    99+
    2023-05-31
    java 多线程 优先级
  • Java 线程的优先级(setPriority)案例详解
    线程可以划分优先级,优先级高的线程得到的CPU资源比较多,也就是CPU优先执行优先级高的线程对象中的任务。 设置线程优先级有助于帮助线程规划器确定下一次选中哪一个线程优先执行。 ja...
    99+
    2024-04-02
  • JavaScript运算符优先级实例分析
    这篇文章主要介绍“JavaScript运算符优先级实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript运算符优先级实例分析”文章能帮助大家解决...
    99+
    2024-04-02
  • Java数据结构之优先级队列实例分析
    本文小编为大家详细介绍“Java数据结构之优先级队列实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java数据结构之优先级队列实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、堆的概念堆的定义:...
    99+
    2023-06-29
  • C#的运算符优先级实例分析
    这篇文章主要介绍了C#的运算符优先级实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#的运算符优先级实例分析文章都会有所收获,下面我们一起来看看吧。实例using System;namespa...
    99+
    2023-06-17
  • Java集合框架之PriorityQueue优先级队列实例分析
    这篇文章主要讲解了“Java集合框架之PriorityQueue优先级队列实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java集合框架之PriorityQueue优先级队列实例分析...
    99+
    2023-07-02
  • Java操作符与其优先级的示例分析
    这篇文章给大家分享的是有关Java操作符与其优先级的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。几乎所有运算符都只能操作“主类型”(Primitives)。例外是“=”、“= =”和“! =”,它们能操...
    99+
    2023-05-30
    java
  • bootstrap.yml和bootstrap.properties的优先级问题实例分析
    这篇文章主要介绍了bootstrap.yml和bootstrap.properties的优先级问题实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇bootstrap.yml和bootstrap.prope...
    99+
    2023-06-29
  • Java线程变量ThreadLocal源码分析
    1.ThreadLocal 线程变量,和当前线程绑定的,只保存当前线程的变量,对于其他线程是隔离的,是访问不到里面的数据的。 2.在Looper中使用到了ThreadLocal,创建...
    99+
    2024-04-02
  • Java线程实例分析
    今天小编给大家分享一下Java线程实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。启动一个线程T1=new YourT...
    99+
    2023-06-03
  • node中IO以及定时器优先级的示例分析
    这篇文章主要介绍node中IO以及定时器优先级的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!事件循环node著名的基于eventloop 的单线程事件循环处理模型,高效的异...
    99+
    2024-04-02
  • mysql条件查询and or使用方法及优先级实例分析
    本文实例讲述了mysql条件查询and or使用方法及优先级。分享给大家供大家参考,具体如下: mysql and与or介绍 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 使用OR关...
    99+
    2022-05-15
    mysql 条件查询 and or 优先级
  • css样式优先级及层叠顺序排序的示例分析
    这篇文章主要介绍css样式优先级及层叠顺序排序的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一般情况下: [1位重要标志位] > [4位特殊性标志] > 声明先后顺序 !important &g...
    99+
    2023-06-08
  • C++各种变量及区别实例分析
    本篇内容主要讲解“C++各种变量及区别实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++各种变量及区别实例分析”吧!在日常开发中,我们经常使用变量,常量,像下面的代码:int ...
    99+
    2023-06-30
  • Java线程终止实例分析
    这篇文章主要介绍了Java线程终止实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java线程终止实例分析文章都会有所收获,下面我们一起来看看吧。题目解析答案选CA:线程使用sleep()方法,使线程挂起...
    99+
    2023-06-30
  • JAVA多线程编程实例分析
    今天小编给大家分享一下JAVA多线程编程实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.三个售票窗口同时出售20张...
    99+
    2023-06-27
  • 如何解析混乱的Linux内核实时线程优先级
    本篇文章给大家分享的是有关如何解析混乱的Linux内核实时线程优先级,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。背景Linux会把进程分为普通进程和实时进程,普通进程采用CF...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作