para matar el thread debes usar en el metodo run un while, el tread muere cuando el valor booleano recibe false
ejemplo
public void run(){
boolean valor=true;
int i=0;
while(valor){
repaint();
try{hilo.sleep(1000);}
catch(InterruptedException e){}
i++;
if(i=100){valor=false;}
}
}
aqui el metodo run dibuja algo 100 veces a intervalos de un segundo luego el hilo muere...