【发布时间】:2015-10-21 18:18:56
【问题描述】:
我正在开发一个有两个线程的 Java 应用程序:
- 生产者线程以 10 KHz 的频率提供
ArrayBlockingQueue(它实际上是通过 JNI 编写的 C 代码)。 - 消费者线程从队列中获取数据,使用
take方法,然后处理它(你不能假设处理时间总是相同的)。由于我使用的是take方法,如果队列中没有可用的数据,这个线程会被阻塞。
我想知道如何监控或分析消费者线程以了解它等待或阻塞了多少时间。
我对诸如花时间与System.currentTimeMillis() 和接受差异之类的答案不感兴趣。如果可能的话,我想知道如何分析整个线程寿命并总结每个线程状态的时间。
您如何进行这种监控?
提前致谢!
【问题讨论】:
-
我已经知道那篇文章,但我不知道如何获得该统计数据(我在文章中没有看到如何),也许这很容易,但是我不知道该怎么做,所以,你能告诉我怎么做吗?这是我的问题。
标签: java multithreading monitoring