WITHDRAWN Re: Proposal: Fully Concurrent ClassLoading

David Holmes david.holmes at oracle.com
Fri Feb 1 04:01:27 UTC 2013

Hi Peter,

On 31/01/2013 11:07 PM, Peter Levart wrote:
> Hi David,
> Could the parallel classloading be at least space optimized somehow in
> the JDK8 timeframe if there was a solution ready?

If there is something that does not impact any of the existing specified 
semantics regarding the classloader lock object then it may be possible 
to work it into an 8 update if not 8 itself. But all the suggestions 
I've seen for reducing the memory usage also alter the semantics in someway.

However, a key part of the concurrent classloader proposal was that it 
didn't change the behaviour of any existing classloaders outside the 
core JDK. Anything that changes existing behaviour has a much higher 
compatibility bar to get over.


> Regards, Peter
> On 01/31/2013 10:26 AM, David Holmes wrote:
>> Regretfully this proposal has to be withdrawn from Java 8. The VM
>> facilities that this depends upon have not been specified formally and
>> so an update to the Java Virtual Machine Specification (JVMS) and
>> further updates to the ClassLoader.defineClass method are required.
>> There was simply no time to get this work specified and completed
>> before the M6 milestone - taking into account other constraints (ie
>> people and time). Further, testing has indicated that there may be
>> some further issues to work out in the VM's "parallel defineClass" path.
>> I plan to submit a new JEP for this and work on it for Java 9.
>> David Holmes
>> ------------
>> On 5/12/2012 9:59 PM, David Holmes wrote:
>>> Java 7 introduced support for parallel classloading by adding to each
>>> class loader a ConcurrentHashMap, referenced through a new field,
>>> parallelLockMap. This contains a mapping from class names to Objects to
>>> use as a classloading lock for that class name. This scheme has a number
>>> of inefficiencies. To address this we propose for Java 8 the notion of a
>>> fully concurrent classloader ...
>>> This is a fairly simple proposal that I've written up as a blog entry:
>>> https://blogs.oracle.com/dholmes/entry/parallel_classloading_revisited_fully_concurrent
>>> Please discuss this proposal here.
>>> Thanks,
>>> David Holmes

More information about the core-libs-dev mailing list