有没有办法获取对象上的等待线程列表/等待线程数?
最佳答案
如果您使用 synchronized
关键字 - 没有。但是,如果您使用的是 java.util.concurrent
锁,你可以。
ReentrantLock
有一个 protected 方法 getWaitingThreads()
.如果扩展它,则可以将其公开。
更新:您正在使用 .wait()
和 .notify()
,因此您可以手动填充和清空 List<Thread>
- 观看之前 .wait()
调用list.add(Thread.currentThread()
,并在每次通知之前将其删除。它并不完美,但实际上您不应该需要这样的列表。
关于等待线程的Java列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7929351/