Saulo,
 
Sugiro que vc utilize uma Collection(ex. vector) para adicionar a ela toda vez que for criada/instanciada uma Thread e qdo quiser remover uma Thread basta pesquisar nesta Collection e ent�o vc ter� refer�ncia a Thread a ser removida. Atrav�s do m�todo setInterrompido(...) poder� finalizar a Thread.
 
Para finalizar a Thread segue as mudan�as no seu c�digo.
 
Espero ter contribu�do. . .
 
Valeu,
 
Asley Batista

 -----Mensagem original-----
De: Saulo Brito [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 10 de junho de 2004 17:25
Para: [EMAIL PROTECTED]
Assunto: [cejug-discussao] Obter refer�ncia do objeto que implementa Runnable e que foi usado para se criar uma thread.

Eu tenho a seguinte classe:
 
class Processo implements Runnable {
    private Thread thread;
    // public boolean interrompido;
    private boolean interrompido;
    public Processo( ThreadGroup tg, String id ) {
        this.interrompido = false;
        this.thread = new Thread( tg, this, id );
        this.thread.setPriority( Thread.MIN_PRIORITY );
        this.thread.start();
    }
    public void run() {
        while( !interrompido ) {
        // Algo
        }
    }
    public void setInterrompido(boolean status)
    {
        interrompido = status;
    } 
}
 
que � inst�nciada sempre que o usu�rio clica no bot�o Adicionar.
Para remover a thread estou usando esse c�digo:
 
String id = this.jtfId.getText();
if ( ev.getSource() == this.jbRemover ) {
    if ( !id.equals( "" ) ) {
        Thread[] processos = new Thread[ this.so.threadGroup.activeCount() ];
        int threadCount = this.so.threadGroup.enumerate( processos );
        boolean removeu = false;
        for ( int i = 0, l = processos.length; (i < l) && (!removeu); i++  ) {
            if ( processos[ i ].getName().equals( id ) ) {
               System.out.println( "Achei:" + id ); // *
                removeu = true;
            }
        }
    }
}
 
* Nesse momento eu acho a thread e quero alterar o valor da vari�vel interrompido da inst�ncia da classe Processo que foi utilizada na cria��o dessa thread. Como eu obtenho essa refer�ncia?
 
Obrigado.
 
Abra�os,
Saulo Brito

Responder a