java线程优先级_java线程优先级有几级

java线程优先级_java线程优先级有几级1.yield方法yield()方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间。当放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。2.线程的优先级在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源越多,也就是CPU优先执行优先级较高的线程对象中的任务。在Java中,线程的优先级分为1~10这10个等级,如果小于1或大于10,则JDK抛出异常thrownewIllegalArgumentException()。JDK中使用3个

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目录

1. yield方法

2. 线程的优先级

3. 线程优先级的继承特性

4. 优先级具有规则性

5. 优先级具有随机性

6. 守护线程


1. yield方法

yield()方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间。当放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。

2. 线程的优先级

在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源越多,也就是CPU优先执行优先级较高的线程对象中的任务。

在Java中,线程的优先级分为1~10这10个等级,如果小于1或大于10,则JDK抛出异常throw new IllegalArgumentException()。

JDK中使用3个常量来预置定义优先级的值,代码如下:

public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;

3. 线程优先级的继承特性

在Java中,线程的优先级具有继承性,比如A线程启动B线程,则B线程的优先级与A是一样的。

4. 优先级具有规则性

高优先级的线程总是大部分先执行完,但不代表高优先级的线程全部先执行完。

当线程优先级的等级差别很大时,谁先执行完和代码的调用顺序无关。

线程的优先级具有一定的规则性,也就是CPU尽量将执行资源让给优先级比较高的线程。

5. 优先级具有随机性

线程的优先级较高则优先执行完run()方法中的任务,但这个结果不能说的太肯定,因为线程的优先级还具有“随机性”,也就是优先级较高的线程不一定每一次都先执行完。

不要把线程的优先级与运行结果的顺序作为衡量的标准,优先级较高的线程不一定每一次都先执行完run()方法中的任务,也就是说,线程优先级与打印顺序无关,不要将两者的关系相关联。它们的关系具有不确定性和随机性。

6. 守护线程

在Java线程中有两种线程,一种是用户线程,另外一种就是守护(Daemon)线程。

什么是守护线程?

守护线程是一种特殊的线程,它的特性有陪伴的含义,当进程中不存在非守护线程了,则守护线程自动销毁。典型的守护线程就是垃圾自动回收线程,当进程中没有非守护线程了,则垃圾回收线程也就没有存在的必要了,自动销毁。

用个比较通俗的比喻解释一下“守护线程”:任何一个守护线程都是整个JVM中所有非守护线程的“保姆”,只要当前JVM实例中存在任何一个非守护线程没有结束,守护线程就在工作,只有当最后一个非守护线程结束时,守护线程才随着JVM一同结束工作。Daemon 的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是GC (垃圾回收器),它就是一个很称职的守护者。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181620.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SMO算法最通俗易懂的解释[通俗易懂]

    SMO算法最通俗易懂的解释[通俗易懂]我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~SVM通常用对偶问题来求解,这…

    2022年6月30日
    24
  • Pycharm 调试代码显示错误行_pycharm远程调试

    Pycharm 调试代码显示错误行_pycharm远程调试pycharm调试scrapy问题:Unknowncommand:crawl

    2025年6月22日
    0
  • 如何使用lc5激活成功教程登录密码

    如何使用lc5激活成功教程登录密码注:以下步骤的实现都是在虚拟机上完成,且可用它猜解2000\Xp\2003密码。1,去网上下载lc5(必须包含注册机)。2,无脑安装lc5(一直下一步)。3,点击运行lc5和虚拟机4,在lc5

    2022年7月3日
    41
  • DropDownList1_SelectedIndexChanged-的使用

    DropDownList1_SelectedIndexChanged-的使用怎样使当DropDownList1改变时也改变相应的DropDownList2的值?实现二级联动。如省市联动啊。以下有代码。将DropDownList1的AutoPostBack属性设为true导入命名空间ImportsSystem.DataImportsSystem.Data.SqlClientPrivateSubPage_Load(ByValsen

    2022年7月18日
    12
  • ubuntu18.04安装pycharm记录「建议收藏」

    ubuntu18.04安装pycharm记录「建议收藏」1.进官网下载pycharm安装包https://www.jetbrains.com/pycharm/download/#section=linux建议选择社区免费版Community,这样就省去激活的过程2.点击下载,然后等待。下载好后右键安装包,解压提取,如下图,解压出了pycharm-community-2019.3.4文件夹3.进入这个pycharm-communi…

    2022年8月27日
    2
  • 数据分析师面试准备

    数据分析师面试准备数据分析师面试准备惊醒。突然发现再要一个月就要过年了,过了年再过个两周就三月了。三月……又到了招聘季。

    2022年6月3日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号