Thread.currentThread()。getId()返回线程ID,但是线程id是由编译器决定的。也有任何方式为特定的线程设置ID。因为没有像setId
这样的方法答案 0 :(得分:2)
在java 8中,线程ID在构造线程时顺序分发(取自Thread
的实现):
private static synchronized long nextThreadID() {
return ++threadSeqNumber;
}
作为Thread.getId()
州的API文档,该ID被承诺在其生命周期内是唯一且不变的:
返回此Thread的标识符。线程ID是肯定的 创建此线程时生成的长数字。 线程ID是唯一的,并且在其生命周期内保持不变。 当线程终止时,可以重用该线程ID。
因此无法更改线程ID,允许更改ID会违反此规定。