Thread Methods destroy() and stop(Throwable) Removed in JDK 11
The message “RFR(s): 8204243: remove Thread.destroy() and Thread.stop(Throwable)” by @DrDeprecator (Stuart Marks) on the core-libs-dev OpenJDK mailing list is a request for review (RFR) of a change set associated with JDK-8204243 [“remove Thread.destroy() and Thread.stop(Throwable)”]. Both the bug report and the mailing list message describe the history of these two referenced Thread methods and explain that neither method really does anything useful.
The JDK 10 Javadoc API documentation for java.lang.Thread shows six methods on the Thread
class that are deprecated, three of which are explicitly marked for removal. The table below summarizes these deprecated Thread
methods.
Methods Deprecated in java.lang.Thread as of JDK 10 | |||
---|---|---|---|
Method | Deprecated Since | For Removal? | JDK 10 Status |
countStackFrames() | 1.2 | Yes | Depends on deprecated suspend() |
destroy() | 1.5 | Yes | Throws NoSuchMethodError since inception (never implemented) |
resume() | 1.2 | No | “Exists solely for use with suspend() “ |
stop() | 1.2 | No | “This method is inherently unsafe.“ |
stop(Throwable) | 1.2 | Yes | Throws UnsupportedOperationException since JDK 8 |
suspend() | 1.2 | No | “This method … is inherently deadlock-prone.“ |
It now appears that two of the three Thread
methods that are deprecated and marked for removal will be removed with JDK 11. Both methods Thread.destroy() and Thread.stop(Throwable) should be completely removed as of JDK 11. The destroy()
method has never done anything except throw the NoSuchMethodError
and the stop(Throwable)
method hasn’t done anything except throw UnsupportedOperationException
since JDK 8. Good riddance to these methods!
Additional References
- Java Thread Primitive Deprecation
- How to Kill a Java Thread
- Why stop, suspend, and resume of Thread are Deprecated
- RFR(s): 8204243: remove Thread.destroy() and Thread.stop(Throwable)
- JDK-8204243 [“remove Thread.destroy() and Thread.stop(Throwable)”]
- JDK-8204260 [“remove Thread.destroy() and Thread.stop(Throwable)”]
- JDK-4102667 [“Thread.countStackFrames() should be a deprecated method.”]
- JDK-8177680 [“Umbrella: Remove terminally deprecated APIs from JDK 11”]
- JDK-8177554 [“Umbrella: Remove terminally deprecated APIs from JDK 10”]
- Time to put a stop to Thread.stop? (revisited)
Published on Java Code Geeks with permission by Dustin Marx, partner at our JCG program. See the original article here: Thread Methods destroy() and stop(Throwable) Removed in JDK 11 Opinions expressed by Java Code Geeks contributors are their own. |