gpt4 book ai didi

java - Thread.getId() 全局唯一性问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:15 33 4
gpt4 key购买 nike

如果多个 Java 应用程序在一个系统上运行,每个线程 ID 相对于所有其他 Java 线程是否是唯一的,无论它们在哪个应用程序中运行?

Java 应用程序应该相对于其他 Java 应用程序是沙盒的,所以我认为线程 ID 可能会发生冲突。

如果线程 ID 在所有应用程序中都是唯一的,是否会泄露系统上其他应用程序的一些(尽管非常小)信息?例如有多少线程在其他应用程序中启动,或者是否有其他 Java 应用程序正在运行?

最佳答案

好吧,让我检查一下来源。

Threadinit 方法中(每个构造函数都会调用):

/* Set thread ID */
tid = nextThreadID();

nextThreadID() 中:

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

和:

/* For generating thread ID */
private static long threadSeqNumber;

threadSeqNumber 初始化为 0(默认 long 值),因此 nextThreadID 返回的第一个值为 1。

因此线程 ID 编号始终从 1 开始并以 1 递增。换句话说,您的问题的答案是它们不是全局唯一。

关于java - Thread.getId() 全局唯一性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591627/

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