gpt4 book ai didi

java:线程ID重用ID

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:40:26 24 4
gpt4 key购买 nike

根据 Thread.getId() 的文档:

Returns the identifier of this Thread. The thread ID is a positive long number generated when this thread was created. The thread ID is unique and remains unchanged during its lifetime. When a thread is terminated, this thread ID may be reused. [emphasis added]

但是,什么情况下线程ID会被复用呢?看着 source code for Thread.java ,获取下一个线程 ID 的方法只是递增一个静态 long:

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

我不明白这段代码将如何重新使用旧 ID,除非通过重新使用它们只是意味着最终增加的 long 将循环回到以前的值(但这没有意义,因为 long 将在这样做之前变得消极 - 这打破了文档)。

问题简而言之:线程 ID 以何种方式重用,以及导致重用的原因是什么?

最佳答案

JDK 类可以有许多不同的实现。您查看了 Thread 实现,发现它永远不会重用线程 ID;但是 Javadoc 只是说线程的 ID 可以在它终止后被重用,也就是说,JDK 实现可以重用已终止线程的线程 ID。

关于java:线程ID重用ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com