Trabalhando com 3 threads

Olá pessoal
Estou trabalhando com 3 threads na máquina. Um cuida da interface gráfica com o usuário (botões, labels, etc) e os outros 2 trabalham juntos mas sem sincronia. Quando clico no botão cancelar, os 2 threads devem morrer.
Pergunto: Como faço para fazer os 2 morrerem. Já tentei os seguintes códigos:

//este é o primeiro código
public void destruirThread(){
if (this.TEnvia.isAlive()){
this.TEnvia.interrupt();
System.gc();
System.out.println(“Thread de envio destruido”);
}
if(this.TRecebe.isAlive()){
this.TRecebe.interrupt();
System.gc();
System.out.println(“Thread de recebimento destruido”);
}
}

//e este é o segundo
public void destruirThread(){
if (this.TEnvia.isAlive()){
this.TEnvia.destroy();
System.gc();
System.out.println(“Thread de envio destruido”);
}
if(this.TRecebe.isAlive()){
this.TRecebe.destroy();
System.gc();
System.out.println(“Thread de recebimento destruido”);
}
}

Onde TEnvia e TRecebe são os threads. Mas os 2 me devolvem ou uma InterruptedException ou um NoSuchMethodError.

Obrigado pela força.

As Threads a serem interrompidas precisam capturar essa exceção.
Com isso, deve funcionar…

[]'s
iSoron.