改变线程优先级的自测小程序

2024-09-01 03:58

本文主要是介绍改变线程优先级的自测小程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!




public class Priority extends Thread
{
 //定义一个有参数的构造器,用于创建线程时指定name
 public Priority(String name)
 {
  super(name);
 }
 public void run()
 {
  for( int i = 0;i<30; i ++)
  {
   System.out.println(getName()+",其优先级是:"+getPriority()+",循环变量的值为;"+i);
  }
 }
 public static void main(String[] args)
 {
  //改变主线程的优先级,这样由main线程所创建的子线程的优先级默认都是6,所以程序直接输出low、high两个线程的优先级时应该看到6.
  //接着程序将low线程的优先级设为Priority.MIN_PRIORITY,将high线程的优先级设置为Priority.MAX_PRIORITY
  Thread.currentThread().setPriority(6);
  for(int i=0; i < 30 ;i++)
  {
   if(i==10)
   {
    Priority low = new Priority("低级");
    low.start();
    System.out.println("创建之处的优先级:"+low.getPriority());
    //设置该线程为最低优先级
    low.setPriority(Thread.MIN_PRIORITY);
   }
   if( i ==20)
   {
    Priority high = new Priority("高级");
    high.start();
    System.out.println("创建之初的优先级:"+high.getPriority());
    //设置该线程为最高优先级
    high.setPriority(Thread.MAX_PRIORITY);
   }
  }
 }
}

运行结果:

D:\mytest\Thread>javac Priority.java

D:\mytest\Thread>java Priority
创建之处的优先级:6
创建之初的优先级:6
低级,其优先级是:6,循环变量的值为;0
高级,其优先级是:6,循环变量的值为;0
高级,其优先级是:10,循环变量的值为;1
高级,其优先级是:10,循环变量的值为;2
高级,其优先级是:10,循环变量的值为;3
高级,其优先级是:10,循环变量的值为;4
高级,其优先级是:10,循环变量的值为;5
高级,其优先级是:10,循环变量的值为;6
高级,其优先级是:10,循环变量的值为;7
高级,其优先级是:10,循环变量的值为;8
高级,其优先级是:10,循环变量的值为;9
高级,其优先级是:10,循环变量的值为;10
高级,其优先级是:10,循环变量的值为;11
高级,其优先级是:10,循环变量的值为;12
高级,其优先级是:10,循环变量的值为;13
高级,其优先级是:10,循环变量的值为;14
高级,其优先级是:10,循环变量的值为;15
高级,其优先级是:10,循环变量的值为;16
高级,其优先级是:10,循环变量的值为;17
高级,其优先级是:10,循环变量的值为;18
高级,其优先级是:10,循环变量的值为;19
高级,其优先级是:10,循环变量的值为;20
高级,其优先级是:10,循环变量的值为;21
高级,其优先级是:10,循环变量的值为;22
高级,其优先级是:10,循环变量的值为;23
高级,其优先级是:10,循环变量的值为;24
高级,其优先级是:10,循环变量的值为;25
高级,其优先级是:10,循环变量的值为;26
高级,其优先级是:10,循环变量的值为;27
高级,其优先级是:10,循环变量的值为;28
高级,其优先级是:10,循环变量的值为;29
低级,其优先级是:1,循环变量的值为;1
低级,其优先级是:1,循环变量的值为;2
低级,其优先级是:1,循环变量的值为;3
低级,其优先级是:1,循环变量的值为;4
低级,其优先级是:1,循环变量的值为;5
低级,其优先级是:1,循环变量的值为;6
低级,其优先级是:1,循环变量的值为;7
低级,其优先级是:1,循环变量的值为;8
低级,其优先级是:1,循环变量的值为;9
低级,其优先级是:1,循环变量的值为;10
低级,其优先级是:1,循环变量的值为;11
低级,其优先级是:1,循环变量的值为;12
低级,其优先级是:1,循环变量的值为;13
低级,其优先级是:1,循环变量的值为;14
低级,其优先级是:1,循环变量的值为;15
低级,其优先级是:1,循环变量的值为;16
低级,其优先级是:1,循环变量的值为;17
低级,其优先级是:1,循环变量的值为;18
低级,其优先级是:1,循环变量的值为;19
低级,其优先级是:1,循环变量的值为;20
低级,其优先级是:1,循环变量的值为;21
低级,其优先级是:1,循环变量的值为;22
低级,其优先级是:1,循环变量的值为;23
低级,其优先级是:1,循环变量的值为;24
低级,其优先级是:1,循环变量的值为;25
低级,其优先级是:1,循环变量的值为;26
低级,其优先级是:1,循环变量的值为;27
低级,其优先级是:1,循环变量的值为;28
低级,其优先级是:1,循环变量的值为;29

这篇关于改变线程优先级的自测小程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125874

相关文章

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Java捕获ThreadPoolExecutor内部线程异常的四种方法

《Java捕获ThreadPoolExecutor内部线程异常的四种方法》这篇文章主要为大家详细介绍了Java捕获ThreadPoolExecutor内部线程异常的四种方法,文中的示例代码讲解详细,感... 目录方案 1方案 2方案 3方案 4结论方案 1使用 execute + try-catch 记录

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创