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...
}
}
}