Threads me mordam

7 respostas
Y

Boa Tarde/Dia/Noite

Pessoal do guj estou as voltas com programação concorrente e gostaria de saber se existe uma forma de monitorar as threads que eu estou criando em meu programa (Basicamente estou programando de forma concorrente mas não estou levando fé nisso hehehehe), por exemplo criei as threads t1 t2 t3, coloquei prioridades diferentes para elas e gostaria de monitorar as threads em execução na jvm, não sei se é possível, mas se alguém souber ou pelo menos tiver uma indicação de como fazer isso (livros tutoriais) um direcionamento eu já agradeço!!!

desde já muito obrigado pela atenção,

7 Respostas

lina

Oi,

Eu utilizo o programa JVisualvm presente no jdk\bin.

Tchauzin!

Polverini

lina:
Oi,

Eu utilizo o programa JVisualvm presente no jdk\bin.

Tchauzin!

Eu uso o JVisualVM tbm !!!

ViniGodoy

Você pode dar um System.out.println no Thread.getCurrentThread().getName();
Claro que será mais interessante daí dar um nome para as threads antes de dispara-las.

Se quiser um relatório completo e detalhado, use o VisualVM que já te indicaram, ou o profiler do próprio netbeans (na opção “Gerar Perfil”).

Polverini

vc pode usar tbm o JPofiler http://www.ej-technologies.com/products/jprofiler/overview.html

ou se você usar o netbeans pode iniciar em modo profile, se não me engano ele mostra = o visualvm

J

Olá Yud,

O que vc está querendo observar monitorando as threads? Por acaso vc está contando com a prioridade de cada uma para garantir a correta execução do seu programa? Se for isso não há nenhuma garantia de funcionamento adequado.

Abs,

José Roberto

J

Acrescsntando, eu só aprendi java pelo tutorial do jqva mesmo. A parte de threads é bem completa.

Abs,

José Roberto

Y

Valeu pela ajuda pessoal tanto jvisualvm como usar o getname para pegar o nomea da thread ajudou (soluções simples para um problema simples).

o que tava acontecendo era o seguinte:

em um programa qualquer com threads, me foi solicitado para utilizar o newfixedthreadpool para definir quantas threads eu vou utilizar e usando o execute do executorservice eu executei um produtor e tres consumidores (problema do produtor consumidor - classico) porem ao executar o programa o tempo de consuma se mantinha igual mesmo eu colocando 50 threads para utilizar, neste ponto passei a duvidar o que eu estava fazendo, por isso queria ver o que o miseravel do programa estava fazendo em tempo de execução, ou seja, queria monitorar as threads para saber o que eu estava aprontando e realmente eu estava fazendo besteira, mas o importante é que com as dicas de vcs eu consigo ter uma visão bem melhor de como programar de forma concorrente em java, valeu mesmo galera!!!

P.S.: Senhor moderator, peço desculpas pelos dois tópicos, no momento em que criei o tópico meu computador perdeu conexão e presumi (erradamente) que o mesmo não havia sido criado, vou tomar cuidado da próxima vez!!!

P.S.(2): no momento desta resposta ainda estava baixando o jprofiler para testar.

Criado 3 de outubro de 2011
Ultima resposta 5 de out. de 2011
Respostas 7
Participantes 5