...
- If
ThreadDeath
is left uncaught, it allows the execution of afinally
block which performs the usual cleanup operations. Even then, use of theThread.stop()
method is highly inadvisable whenThreadDeath
is left uncaught by the target thread, primarily because of two reasons. First, no particular the target thread can cannot be forcefully stopped because an arbitrary thread can catch the thrownThreadDeath
exception and simply choose to ignore it. Second, abruptly stopping a thread results in the release of all the locks that it has acquired, violating the guarantees provided by the critical sections. Moreover, the objects end up in an inconsistent state, non-deterministic behavior being a typical outcome.
...