线程4个属性
线程ID
线程ID:每个线程都有自己的ID,用来标识不同的线程。JVM就用ID辨识线程,这个属性虽然在每一次JVM启动是唯一的,下一次创建线程,它又会从1开始往上编号,所以同一个ID会被先后不同的线程使用,唯一性不能保证;ID不允许被修改。ID是从1开始,并自增的,JVM运行起来后,我们自己创建的线程ID早已经不是1也不等于2,因为JVM 会自动创造一些线程,比如去做初始化、gc等。Thread.currentThread().getId();
线程Name
线程Name:作用是让程序员在开发、调试或运行过程中,更容易区分每个不同的线程、定位问题。如果我们不指定线程名,他就会自动生成Thread-nextThreadNum,nextThreadNum即threadInitNumber是自增的,并且被synchronized修饰,所以不会重复。也可以使用setName()设置线程名字。
是否是守护线程(isDaemon)
- 是否是守护线程(isDaemon):true代表是【守护线程】,false代表是非守护线程,也就是【用户线程】。
- 守护线程作用是给用户线程提供服务,守护的是用户线程。它不影响JVM结束运行,当用户线程都结束了,它会和JVM一起结束。
- 守护线程三个特性:
- 线程类型默认继承自父线程,即守