Many threads created by the platform are short lived and perform some simple async operation on behalf of the platform. These threads typically use/extend sun.misc.ManagedLocalsThread. This is a convenient internal API that can be used to create threads that do not wish to inherit initial values from inheritable thread-local variables.
I'd like to propose an additional java.lang.Thread constructor that exposes the ability to explicitly "opt out" of inheriting these initial values ( from inheritable thread-local variables ). This seems like useful general functionality, given the amount of usage in the JDK of the internal API. This new public API can then be used to replace usages of the internal sun.misc.ManagedLocalsThread. As part of this bug I've only retrofitted the usage in the sources of the base module. Other modules can be done as a follow up. Webrev: http://cr.openjdk.java.net/~chegar/8056152/00/webrev/ -Chris. [1] https://bugs.openjdk.java.net/browse/JDK-8056152