Olá, se o problema for deadlock(uma thread esperando pra usar um recurso que a outra possui e segurando um que a outra quer) acho que o jconsole é suficiente, ele já vem junto com o Java SE 5 e 6, no java 6 é só digitar jconsole no prompt e conectar à sua aplicação, então vc procura nas abas lá que logo vai encontrar a detecção de deadlock.
No java 5, vc tem que rodar sua aplicação com o comando “java -Dcom.sun.management.jmxremote …”, nas … vai o que vc usaria normalmente. Não tenho certeza quanto a isso, se precisar usar isso dá uma pesquisada ou pergunta aqui que eu olho melhor.
Caso o seu problema seja loop infinito, que acho que é o mais comum, acho que o Glassbox pode te ajudar, não testei ele mas pelo que li parece realmente muito bom, só não tenho certeza se ele não é só pra aplicações web…
Caso ele não sirva, tem ferramentas que vem com o java que podem de ajudar de um jeito muito mais trabalhoso :razz: mas nao lembro o nome, teria que dar uma pesquisada denovo…
E, finalmente, se vc precisa fazer um programa que faça esse gerenciamento, acho que precisará utilizar a JMX, eu posso te ajudar nisso mas só terei tempo a partir de quinta feira, se for o caso fale aí 