Jaka jest prawidłowa obsługa zakończenia wątku? Chodzi mi o zatrzymanie z poziomu kodu jak i z poziomu np konsoli naciskając klawisze CTRL+C
Mamy np:
W tym podejściu to wiem że musiałbym jakiegoś shutdownHooka zapiąć aby zamknąć wątki.
public void run() {
while(isActive) {
//jakas logika
}
}
public void stopThread() {
isActive = false;
}
czy powinniśmy to zrobić tak (czy czasem w tym podejściu nie będziemy narażeni na nieprawidłowe wykonanie iteracji?):
public void run() {
while(!Thread.interrupted()) {
//jakas logika
}
}
public void stopThread() {
interrupt();
}