2016-09-23 25 views
0

Thread.currentThread()。getId()返回线程标识符,但线程ID是如何由编译器决定的。还存在用于特定的线程的任何方式设置。因为ID有像SETID没有方法在多线程中getId方法如何决定任何线程的ID

+0

也许没有'setId'是因为我不相信程序员来设置它。你为什么想让程序员设置它?但是,您可以设置名称。 –

+0

为什么你需要设置线程ID?你想达到什么目的?编译器如何处理ThreadID?每次在运行时创建新的线程时,它都会增加。 – rkosegi

回答

2

在java中8线程ID被发放顺序上施工的螺纹(从Thread所采取)的:

private static synchronized long nextThreadID() { 
    return ++threadSeqNumber; 
} 

作为Thread.getId()状态API文档中,ID被答应是唯一的和恒定期间它的寿命:

返回该线程的标识符。线程ID是创建此线程时生成的正数 长整数。 线程ID是唯一的,并且在其生命周期中保持不变。 当一个线程被终止时,这个线程ID可能被重用。

因此,更改线程ID是不可能的,并且允许更改ID将违反此规定。

+0

同意谢谢:) –