Ho capito cosa accade utilizzando i metodi interrupt, interrupted e isInterrupted.
Il primo setta un flag a true.
Il secondo, che è statico, verifica il flag di cui sopra sul currentThread. Se è settato a true, lo setta a false e ritorna true, altrimenti ritorna false.
Il secondo, che non è statico e dunque può essere chiamato su un qualunque thread, controlla il flag e ritorna true o false a seconda dello stato del flag, senza alterare tale flag.
Ora però non vedo dove potrebbe essere utile utilizzare gli ultimi due metodi: mentre il primo può essere utile nel caso in cui venga chiamata una sleep, join o wait (nel cui caso si genera una interruptedException) non vedo come possano essere utilizzati gli altri due metodi.
Qualcuno può farmi degli esempi?

Rispondi quotando