在大型的应用中,线程堆栈打印出来特别多,如何从众多的信息中找到真正有用,有价值的信息,我们需要一定的技巧.本文对此详细介绍. 我们可以从三个方面分析:堆栈的局部信息,一次堆栈的统计信息,多个堆栈的对比信息. 从一次的堆栈信息中,我们可以直接获取以下信息: 每一个线程的调用关系,当前线程在调用哪些函数 每个线程的当前状态,持有哪些锁,在等待哪些锁? 从一次堆栈信息中,我们还可以统计以下信息: 是否有很多线程都在等待同一个锁,说明这个系统存在性能瓶颈,导致了锁竞争 当前线程的总数量 大多数线程在干什