Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • If ThreadDeath is left uncaught, it allows the execution of a finally block which performs the usual cleanup operations. Even then, use of the Thread.stop() method is highly inadvisable when ThreadDeath is left uncaught by in the target thread, primarily because of two reasons. First, the target thread cannot be forcefully stopped because an arbitrary thread can may catch the thrown ThreadDeath 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.

...