Il modo migliore è una variabile booleana nel while. Non so che sia l'oggetto gd... Comunque la variabile generalmente è nella classe ove si trova il run() non in un altra classe.
codice:
public void run() {
  while(flag) {
    // Codice del thread
  }
}
Ad esempio, se viene premuto un bottone che faccia fermare una data operazione, come un download ad esempio, tu chiamerai un metodo di questa classe, ad esempio chiamato stopThread() e setti quella variabile a false.