我有多个线程池,每个线程池运行 4 个线程。每个线程根据它们提供的唯一 ID 锁定一些公共(public)资源。我使用 Thread.currentThread().getId()
作为唯一 ID 来锁定和释放资源。
我在 Thread 类中读到,线程 ID 只是一个递增和分配的长数字,一旦线程终止,它也可以重用。但它没有提及任何关于它在线程池中的行为。
线程 ID 是否保证在属于不同线程池的线程中是唯一的?
最佳答案
线程ID是唯一的;但您需要注意,一旦线程终止,JVM 可能会重用线程 ID。
https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#getId--
关于java - Java线程ID在多个线程池中是否唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66057480/