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

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

目录

前言

线程优先级

精灵线程


前言

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

线程优先级

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

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

thread.setPriority(9);

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

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

精灵线程

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

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

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

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

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


http://www.mrgr.cn/news/28132.html

相关文章:

  • python爬虫初体验(五)—— 边学边玩小游戏
  • 从零创建vue+elementui+sass+three.js项目
  • Flume1.9.0自定义Sink组件将数据发送至Mysql
  • stm32在linux环境下的开发与调试
  • ‘由于找不到d3dx9_43.dll,程序无法正常启动’具体的处理方法。
  • Mysql 5.7.6以上版本怎样关闭GTID(由GTID改为基于file,position方式)
  • 【演化博弈论】:双方演化博弈的原理与过程
  • java数据结构----图
  • 【Kubernetes】常见面试题汇总(十九)
  • C++第五十一弹---IO流实战:高效文件读写与格式化输出
  • 数据结构之基数排序简介与举例
  • 图像增强技术分析
  • aspcms webshell漏洞复现
  • 卡拉兹(Callatz)猜想也叫(3n+1)猜想
  • 【数据结构】排序算法---希尔排序
  • 第T11周:优化器对比实验
  • Vue基础
  • 【C++】深入理解作用域和命名空间:从基础到进阶详解
  • 深入浅出Java匿名内部类:用法详解与实例演示
  • 有了数据中台,是否需要升级到数据飞轮?怎么做才能升级到数据飞轮?
  • 包装盒型自动生成插件 Origami Boxshot illustrator盒型自动生成插件
  • 北大对齐团队独家解读:OpenAI o1开启「后训练」时代强化学习新范式
  • SpringCloud-05 Resilience4J 服务降级和熔断
  • 汽车英文单词缩写汇总
  • 【Multi-UAV】多无人机实现凸多边形区域覆盖--Voronoi分割
  • 进程状态、进程创建和进程分类