关于线程的属性

梦想与她 提交于 2020-03-04 22:04:19

一、线程的属性

在这里插入图片描述

二、线程的ID

在这里插入图片描述

运行上面的main方法,我们发现了问题,为什么一个ID是1,另一个应该是2,确变成了12。
在这里插入图片描述
源码中我们可以看到,线程ID,是自增的,初始值为0,且为前缀递增,所以第一个线程的ID不是0,而是1。
在这里插入图片描述
degug发现有很多个线程,这就证明除了我们写的主子线程之外,JVM还帮我们创建了一些线程。
在这里插入图片描述

二、 线程的名字

1.源码中线程默认的名字

在这里插入图片描述

2.修改线程名字

如果没在线程的构造函数里写入线程的名字,依然可以在后期setName改变,但是一旦线程启动,他native层的名字就没法改了。
在这里插入图片描述

3.守护线程

给用户线程提供服务(GC),一般由JVM创建(main非守护线程),线程类型默认继承自父线程,不影响JVM退出。
和普通线程的区别:整体上没什么区别,区别在于是否会影响到JVM的退出,用户进程是执行逻辑的,守护进程是服务于我们的,我们不应该把自己的线程设置为守护线程。

4.线程优先级

JAVA中有10个级别,默认是5.
在这里插入图片描述
源码中关于优先级的地方,分为最低,最高,一般为五,总共有10种(1-10)。

☆注意:程序设计不应该依赖优先级,因为不同的操作系统不一样。在同一种操作系统中,优先级也会被操作系统改变。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!