当前位置: 首页 > article >正文

JAVA基础:线程优先级和精灵线程

目录

前言

线程优先级

精灵线程


前言

线程存在的目的是为了提升代码的效率,以前的程序只有主线程自己执行是串行的,这样的代码效率低 ,多线程执行的代码是并行的,多个线程同时执行代码,这样的效率高,但是线程并不是越多越好,线程的执行需要获取CPU才能执行,而CPU的数量是有限的,并且java的线程还是抢占式的,这时就会出现一个问题,如果有一个线程要执行的代码是更重要的,我们需要让这个线程更早的执行,如果线程的优先级都一样就可能会导致这个线程一直抢不到CPU

线程优先级

我们可以给线程手动设置优先级,设置更高的优先级可以增加线程抢到CPU的几率

注意:并不是优先级更高就一定比优先级低的线性先抢到CPU,只是获得CPU的几率更大

thread.setPriority(9);

可以使用上面的方法设置线程优先级

通过源码可知,线程优先级的最小值是1,默认是5,最大是10

精灵线程

精灵线程也叫守护线程,是可以通过方法设置的

     Thread thread = new Thread();
        thread.setDaemon(true);

通过这个方法可以将一个线程设置为精灵线程

守护线程是用来守护主线程的,我们创造的所有线程都叫做用户线程,如果主线程执行完了自己的代码,而用户线程没有执行完毕,这时主线程就会卡住,等待用户线程执行完毕再结束程序

守护线程的作用就是如果主线程执行完毕,不管守护线程是否执行完毕,主线程都会结束程序


http://www.kler.cn/a/306592.html

相关文章:

  • SpringMVC学习笔记(二)
  • Qwen2-VL:发票数据提取、视频聊天和使用 PDF 的多模态 RAG 的实践指南
  • acwing算法基础02一高精度,前缀和,差分
  • 搭建深度学习开发环境
  • @ComponentScan:Spring Boot中的自动装配大师
  • matlab建模入门指导
  • 股指期货的详细玩法功能与应用解析
  • 详解 Pandas 的累计统计函数
  • Java后端开发(十七)-- Java中对Object、Collection集合、Map集合、数组进行判空
  • 数据结构:时间复杂度与空间复杂度
  • 【代码随想录训练营第42期 Day57打卡 - 图论Part7 - Prim算法与Kruskal算法
  • 后端开发刷题 | 数字字符串转化成IP地址
  • 状态机按键消抖(学习笔记)
  • Flink有界流实现(1)
  • 【Python】谷歌浏览器总是自动更新,使用selenium跟chromedriver版本不匹配怎么办?
  • 01,大数据总结,zookeeper
  • 算法练习题27——疫情下的电影院(模拟)
  • AI辅助癌症诊断取得了进展
  • Angular面试题一
  • 大模型 LLM(Large Language Models)如今十分火爆,对于初入此领域的新人小白来说,应该如何入门 LLM 呢?是否有值得推荐的入门教程呢?
  • 深度学习自编码器 - 引言篇
  • java基于PDF底层内容流的解析对文本内容进行编辑
  • 象过河手机进销存,外出办公更方便,随时了解经营情况
  • C# 静态static
  • 基于HTML5的下拉刷新效果
  • 如何避免长距离遗忘问题