mmm...non serve invocare il metodo run di un thread visto che ottieni lo stesso risultato di creando un oggetto della classe che estende la classe thread e poi utilizzando il metodo .start();

In effetti un ciclo infinito non ha molto senso, se vuoi mettere in pausa un thread esiste il metodo wait() che appunto blocca il thread che lo esegue. Per poi risvegliarlo devi usare un notifyAll().
Il tutto ovviamente in un try catch...su un esempio concreto forse è più semplice da capire...

Ciao.