Il modo migliore per fermare un Thread in esecuzione è impostare una variabile che il thread controlla occasionalmente. Non appena il Thread si accorge che la variabile è impostata, dovrebbe uscire dal proprio metodo run().

NB: Thread.suspend() e Thread.stop() forniscono modalità asincrone per la sospensione del Thread. Questi metodi sono stati deprecati in quanto poco sicuri e non dovrebbero essere usati.

Di seguito un esempio del modo corretto per fermare un Thread:

Codice PHP:

// Crea ed avvia il thread
MyThread thread = new MyThread();
thread.start();
    
// Fa qualcosa...
    
// Ferma il thread
thread.allDone true;
    
//////////////////////////////////////////////
class MyThread extends Thread {
    
boolean allDone false;
    
    
// Questo metodo viene invocato quando 
    // il thread è in esecuzione
    
public void run() {
        while (
true) {
           
// Fa qualcosa...
    
            
if (allDone) {
                return;
            }
 
            
// Fa qualcosa...
        
}
    }