我正在开发一个有两个线程的Java应用程序:
ArrayBlockingQueue
的生产者线程(它实际上是通过JNI的C代码)。take
方法从队列中获取数据的消费者线程,然后对其进行处理(您不能假设处理时间始终相同)。由于我使用take
方法,如果队列中没有可用数据,则可以阻止此线程。我想知道如何监控或分析消费者线程,以了解它等待或阻止的时间。
我对System.currentTimeMillis()
的时间和差异等问题的答案不感兴趣。我想知道如何分析整个线程的生命周期并总结每个线程状态中有多少时间,如果可能的话。
您如何进行此类监控?
提前致谢!