如果系统上运行多个
Java应用程序,则每个线程ID相对于所有其他Java线程都是唯一的,无论它们在运行什么应用程序?
Java应用程序相对于其他Java应用程序应该是沙箱,所以我认为线程ID可能会发生冲突.
如果线程ID在所有应用程序中都是唯一的,那么系统上的其他应用程序的信息是否不会泄露(尽管很小)?例如在其他应用程序中启动了多少线程,或者甚至其他Java应用程序正在运行?
解决方法
嗯,让我来看看.
/* Set thread ID */ tid = nextThreadID();
在nextThreadID()中:
private static synchronized long nextThreadID() { return ++threadSeqNumber; }
和:
/* For generating thread ID */ private static long threadSeqNumber;
它永远不会设置,因此默认为0.
所以显然,线程ID号总是从0开始并递增1.换句话说,你的问题的答案是它们不是全局唯一的.