等待线程的Java列表

标签 java multithreading

有没有办法获取对象上的等待线程列表/等待线程数?

最佳答案

如果您使用 synchronized关键字 - 没有。但是,如果您使用的是 java.util.concurrent锁,你可以。

ReentrantLock有一个 protected 方法 getWaitingThreads() .如果扩展它,则可以将其公开。

更新:您正在使用 .wait().notify() ,因此您可以手动填充和清空 List<Thread> - 观看之前 .wait()调用list.add(Thread.currentThread() ,并在每次通知之前将其删除。它并不完美,但实际上您不应该需要这样的列表。

关于等待线程的Java列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7929351/

相关文章:

Java - 这是好的编程习惯吗?

c# - 使用相同名称的包/命名空间和类是一种好习惯吗?

c# - 使用线程来加速进程

java - 无法覆盖 SwingWorker 中的 process() 方法

python - 如何关闭 Python TCPServer 或 HTTPServer 或 SimpleHTTPServer?

java - Rack 端口到 Java?

java - Java中 'void method'和 'return type method'之间的主要区别是什么?

java - 试图在两个线程之间创建死锁

ios - 在 Xcode 9/Swift 4 Google APIs Client Library for Objective-C for REST : threading notification not working

java - Top Trumps 卡的类结构