文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-07-02 08:35

关注

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

前言:

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

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

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

Java线程优先级的变量

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

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯