Question on Project Loom and motivation to introduce ScopedValues

Ilya Starchenko st.ilya.101 at
Sun Oct 8 18:41:15 UTC 2023

Hello loom-dev team,

Firstly, I'd like to express my appreciation for your work on Project Loom.
I have a couple of questions regarding ThreadLocal and the motivation
behind introducing ScopedValues that I hope you can clarify for me.

   1. I'm starting to deep how ScopedValues works(ref:
   noticed that ScopedValues' snapshots are placed in the same place as the
   map of ThreadLocals. However, I'm struggling to grasp why a LinkedList of
   maps within the Thread field is favoured over a HashMap? I understand that
   ScopedValues have a concept of scope and are immutable, but I'm curious as
   to why it wasn't considered to introduce a new API for TL that would
   incorporate scope and immutability. Are there technical reasons that make
   ScopedValues superior to TL, or was enhancing ThreadLocal (by adding scope
   and immutability) not a viable option?
   2. Many users and libraries use ThreadLocal for object pooling(which can
   have a major performance impact). Do you have any recommendations for
   migrating these use cases? Perhaps to some form of global cache?

Best regards,
Ilya Starchenko

P.S. I am not a JDK developer; I am simply trying to gain a deeper
understanding of this topic. Thank you for your assistance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the loom-dev mailing list