【Kill Thread Part.1-6】一网打尽线程属性

【Kill Thread Part.1-6】一网打尽线程属性

  • 什么时候我们需要设置守护线程?
  • 我们应该如何应用线程优先级来帮助程序运行?有哪些禁忌?
  • 不同操作系统如何处理优先级问题

一、线程各属性概览

image-20220124175236719

二、线程各个属性

1、线程ID

从小到大

/**
 * 描述:     ID从1开始,JVM运行起来后,我们自己创建的线程的ID早已不是2.
 */
public class Id {

    public static void main(String[] args) {
        Thread thread = new Thread();
        System.out.println("主线程的ID"+Thread.currentThread().getId());
        System.out.println("子线程的ID"+thread.getId());
    }
}

image-20220124175632950

2、线程名字

image-20220124183245829

image-20220124183301463

三、守护线程

作用:给用户线程提供服务

当用户线程结束了,JVM运行停止,守护线程负责给用户线程提供服务。

特性:

  • 线程类型默认继承自父线程
  • 被谁启动(通常而言都是由JVM启动的)
  • 不影响JVM的退出

和普通线程的区别:

  • 整体上没什么区别
  • 唯一区别在于JVM的离开

四、线程优先级

10个级别,默认为5

程序设计不应该依赖于优先级:

  • 不同操作系统对于优先级的理解不一样
  • 优先级会被操作系统改变
  • 可能导致线程被饿死

五、总结

image-20220124184048998

posted @ 2022-01-24 18:43  DarkerG  阅读(30)  评论(0编辑  收藏  举报