Лучшее решение - использовать профилировщик - для этого они и созданы, и есть отличное решение, связанное с Java 6.
Другое (далеко не идеальное решение) - запустить вашу программу в Eclipse IDE (если вы ее используете) в режиме отладки. Затем вы можете посмотреть на запущенные темы. Если многие из них временно отстранены, тот, кто не может быть вашим виновником. Заставьте его сломаться (с панели инструментов), и вы увидите, где он находится. Есть много шансов, что вы найдете четкую петлю или заняты ожиданием.