一、线程的属性
二、线程的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)。
☆注意:程序设计不应该依赖优先级,因为不同的操作系统不一样。在同一种操作系统中,优先级也会被操作系统改变。
来源:CSDN
作者:xuehw.
链接:https://blog.csdn.net/weixin_43192775/article/details/104653031