学习总结录 学习总结录
首页
归档
分类
标签
  • Java基础
  • Java集合
  • MySQL
  • Redis
  • JVM
  • 多线程
  • 计算机网络
  • 操作系统
  • Spring
  • Kafka
  • Elasticsearch
  • Python
  • 面试专题
  • 案例实践
  • 工具使用
  • 项目搭建
  • 服务治理
  • ORM框架
  • 分布式组件
  • MiniSpring
  • 设计模式
  • 算法思想
  • 编码规范
友链
关于
GitHub (opens new window)
首页
归档
分类
标签
  • Java基础
  • Java集合
  • MySQL
  • Redis
  • JVM
  • 多线程
  • 计算机网络
  • 操作系统
  • Spring
  • Kafka
  • Elasticsearch
  • Python
  • 面试专题
  • 案例实践
  • 工具使用
  • 项目搭建
  • 服务治理
  • ORM框架
  • 分布式组件
  • MiniSpring
  • 设计模式
  • 算法思想
  • 编码规范
友链
关于
GitHub (opens new window)
  • Java基础

  • Java集合

  • MySQL

  • Redis

  • JVM

  • 多线程

    • Java多线程-创建线程
    • Java多线程-启动线程
    • Java多线程-停止中断线程
    • Java多线程-生命周期
    • Java多线程-Thread和Object
    • Java多线程-线程属性
      • Java多线程06-线程属性
      • 线程ID
      • 线程名
      • 守护线程
      • 线程优先级
    • Java多线程-线程异常
    • Java多线程-线程安全
    • Java多线程-死锁问题和解决方案
  • 计算机网络

  • Spring

  • Kafka

  • Elasticsearch

  • Python

  • 面试专题

  • 知识库
  • 多线程
旭日
2023-03-31
目录

Java多线程-线程属性

# Java多线程06-线程属性

属性名称 用途
编号(ID) 每个线程有自己的ID,用于表示不同的线程
名称(name) 作用让用户或程序员在开发和调试过程重区分每个不同的线程
是否为守护线程 (isDaemon) true为守护线程,false为非守护线程(用户线程)
优先级 (Priority) 优先级是告诉线程调度器那些线程多运行,那些线程少运行。

# 线程ID

Java主线程ID从1开始,创建的子线程并非从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());
    }
}

由于除了main主线程外,jvm还会创建很多其他子线程,所以我们创建的这个线程id并非是2。

相关源码:

    private static synchronized long nextThreadID() {
        return ++threadSeqNumber;
    }

# 线程名

如果线程初始化的时候没有设置名字,java默认会按照一定规则来给线程赋予名字。

    public Thread() {
        init(null, null, "Thread-" + nextThreadNum(), 0);
    }
    private static synchronized int nextThreadNum() {
        return threadInitNumber++;
    }

初始化线程的时候,尽量给线程设置好名字,方便日后日志检查。

# 守护线程

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

三个特性:

  • 线程类型默认继承自父线程。
  • 守护线程通常是由JVM启动的。
  • 不影响JVM退出

# 线程优先级

线程有10个级别,线程默认是为5。

    /**
     * The minimum priority that a thread can have.
     */
    public final static int MIN_PRIORITY = 1;

   /**
     * The default priority that is assigned to a thread.
     */
    public final static int NORM_PRIORITY = 5;

    /**
     * The maximum priority that a thread can have.
     */
    public final static int MAX_PRIORITY = 10;

由于不同操作系统的线程优先级不一样,所以程序设计不应依赖于优先级。

#Java
上次更新: 2024/06/29, 15:13:44
Java多线程-Thread和Object
Java多线程-线程异常

← Java多线程-Thread和Object Java多线程-线程异常→

最近更新
01
基础概念
10-31
02
Pytorch
10-30
03
Numpy
10-30
更多文章>
Theme by Vdoing | Copyright © 2021-2024 旭日 | 蜀ICP备2021000788号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式