深入浅出Java并发多线程(10)- 线程8大核心基础-线程属性

1 线程属性

在这里插入图片描述

1.1 ID

/**
 * @Description ID从1开始,JVM运行起来后,自己创建的线程的ID早已不是2
 * @Author tzb
 * @Date 2021/2/16 18:10
 * @Version 1.0
 **/
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());
    }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2 线程名字

1.2.1 默认线程名字源码分析

在这里插入图片描述

  • 用 synchronized修饰,不会出现线程重名
    在这里插入图片描述

1.2.2 修改线程名字

  • 0 表示最开始线程还没有启动的时候
    在这里插入图片描述

在这里插入图片描述

1.3 守护线程

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

3个特性:
在这里插入图片描述

1.3.1 守护线程和普通线程的区别

在这里插入图片描述

1.3.2 常见面试题

在这里插入图片描述

整体没有区别,区别在于是否影响JVM的退出以及作用不同。用户线程是执行逻辑的,守护线程是服务于我们的。


  • 是否需要给线程设置为守护线程?
    不应该把自己的线程设置为守护线程。比如如果自己的线程正在访问文件,JVM发现只剩下守护线程了,会关闭JVM,导致操作的中间被强行的终止,所以就会出现不一致。

1.4 线程优先级

在这里插入图片描述

2 线程属性总结

在这里插入图片描述

3 面试问题

3.1 何时需要守护线程

通常情况下不需要设置,JVM提供的守护线程足够使用

3.2 如何应用线程优先级帮助程序运行

不应该用线程优先级

3.3 不同操作系统如何处理优先级问题

不同操作系统对不同的优先级调度不一样

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值