Salve ragazzi ho bisogno di sapere se ho compreso bene alcuni passaggi sulle interruzioni fra threads.

Un thread t1 può interrompere un altro thread t2 tramite l'invocazione:
codice:
t2.interrupt()
in java.lang.Thread.

Sappiamo però che questa invocazione non comporta una vera e propria interruzione ma in realtà un flag all'interno di t2 viene settato a true.
Se t2 è running non si accorgerà mai dell'interruzione a meno che non venga invocato il metodo statico Thread.iterrupted() che lancia l'eccezione InterruptedException e resetta il flag a false.

<In particolare è corretta l'affermazione in grassetto?>

Se t2 passa da uno stato running a non running (o è gia not running al momento dell'invocazione di interrupt()) tramite un wait(), join() o sleep() l'eccezione verrà lanciata senza ricorrere al metodo statico del caso running descritto precedentemente e allo stesso tempo il flag verrà resettato.


Vorrei ora sapere se è così che funziona in realtà o sono io ad aver capito male.
Grazie mille