java - Java线程ID在多个线程池中是否唯一?

标签 java multithreading threadpool executorservice

我有多个线程池,每个线程池运行 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/

相关文章:

java - 复选框节点树,Swing 中的自定义渲染器

c++ - boost::thread 在每次运行时产生不同的结果

java - 一次提交多个相关任务的线程池的推荐大小

C++\Win32 对 WaitForSingleObject 函数返回值含义感到困惑

c# - 什么决定了 TaskFactory 产生的作业的线程数?

c# - 内存不足线程 - 性能测试工具

java - Activity 方向改变错误

java - 找不到提供程序类 : when running Jersey REST service

java - 为什么方法 Queue#add() 有 boolean 值返回值?

java - 私有(private)不可变对象(immutable对象)的同步块(synchronized block)和同步方法的区别