Skip to content

Implement Thread-Specific Storage Pattern #3225

@iluwatar

Description

@iluwatar
Owner

Description

Thread-Specific Storage is a concurrency design pattern where each thread retains its own instance of a shared object, typically achieved using ThreadLocal<T> in Java. By isolating data to each thread, you avoid synchronization overhead and minimize concurrency issues. Common use cases include storing thread-specific contexts, caching stateful objects like DateFormat, or managing per-thread counters without risking data corruption or race conditions.

Key Elements

  • Isolation of State: Each thread has its own copy of the data, reducing shared mutable state.
  • ThreadLocal Utility: Java’s ThreadLocal<T> class provides a straightforward way to store data private to each thread.
  • Initialization & Cleanup: Properly initializing and cleaning up thread-local data is crucial to prevent memory leaks.
  • Practical Use Cases: Storing per-thread data such as locale-specific formatters, current transaction context, or local caches.

References

  1. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects
  2. Java Design Patterns - Contribution Guidelines

Acceptance Criteria

  • A new module or package named thread-specific-storage (or similar) is added.
    Demonstrates a clear use case of storing and retrieving thread-local data (e.g., per-thread state).
    Includes a readme (or .md file) explaining how the pattern works, with code examples or diagrams.
    Adheres to the repository’s coding style and naming conventions.
    Includes unit tests verifying behavior in a multi-threaded scenario.
    Passes all CI checks and meets the project’s contribution guidelines.

Activity

CMD137

CMD137 commented on May 31, 2025

@CMD137

Hello @iluwatar .I would like to work on this .Could you assign it to me? It would be a great opportunity to learn!

MFrikken

MFrikken commented on Jul 6, 2025

@MFrikken

Hey @iluwatar, I'm currently working on a thread-safety related topic in Java and am craving for some hands on practice. Feel free to assign me for this issue so I can start right away!

CMD137

CMD137 commented on Sep 26, 2025

@CMD137

If there’s no objection, I’ll start implementing this now and submit a PR. 🚀

RitikaMathur19

RitikaMathur19 commented on Oct 15, 2025

@RitikaMathur19

Is someone working on this already , No one is assigned yet. Else please assign it to me.

kdt523

kdt523 commented on Oct 17, 2025

@kdt523

Hi, I’d like to work on this issue . Could you please assign it to me?

quantambites

quantambites commented on Oct 22, 2025

@quantambites

doing it .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @iluwatar@RitikaMathur19@CMD137@MFrikken@quantambites

        Issue actions

          Implement Thread-Specific Storage Pattern · Issue #3225 · iluwatar/java-design-patterns