Open
Description
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
- Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects
- 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.
Metadata
Metadata
Assignees
Projects
Status
Todo