java 线程相关的属性介绍

属性名称用途注意事项
id (线程id)标识不同的线程被后续创建的线程使用,唯一性,不能被修改
name (线程名称)定位问题开发和排查问题的时候用得到,定义名字要清晰有意义
isDaemon (是否是守护线程)守护线程、用户线程1: 继承父线程,2: setDaemon()
priority (线程优先级)相对多运行默认和父线程的优先级相等,共有10个等级
1.线程id
  • 线程id主要用来表示不同的线程的,这个类似数据库的主键id。id从1开始自增。
    生成线程id源码
    在这里插入图片描述
2.线程名称
  • 线程名称这个属性一般在开发或者调试程序的时候用的比较多,这个线程名称可以我们自定义也可以使用默认的
    生成线程名称源码
    在这里插入图片描述
    自定义名称的源码
    在这里插入图片描述
3.守护线程
  • 作用: 给用户线程提供服务的 (用户线程就是实际上执行业务逻辑的线程),gc垃圾回收就是守护线程。用户线程全都执行完成以后,jvm就回停止,它不会关心守护线程有没有执行完成,因为等待守护线程完成没有意义,用户线程都执行完成了你这个守护线程还是守护谁的?所以jvm不会管守护线程是否完成而直接就停止。
    举个例子: 和朋友去吃饭, 由于在吃饭的过程中和朋友聊得比较嗨,都已经超过了饭店的关门时间了,但是老板还不能关门因为还有人在吃饭,吃饭的人就是用户进程, 用户进程不结束,jvm不能停止。
  • public final void setDaemon(boolean on);// 设置守护线程
  • public final boolean isDaemon(); // 判断是否为守护线程
4.线程优先级
  • 线程的优先级就是在多线程的环境中设置线程的执行顺序,但是这个顺序不是说优先级高的线程就会立刻优先执行,只是让线程有很大的几率优先执行而已,在java中线程的优先级有十个,子线程默认会继承父线程。
  • 程序不能完全依赖线程的优先级,不同操作系统之间的优先级是不同的。
  • public final void setPriority(int newPriority); // 设置优先级的方法
  • public final int getPriority(); // 获取优先级
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值