java-design-patterns
java-design-patterns copied to clipboard
Implement Thread-Pool Executor pattern
Description
The Thread-Pool Executor is a concurrency design pattern that maintains a pool of worker threads to process tasks. Rather than creating a new thread each time a task is submitted, the pattern reuses existing threads in the pool. This leads to more efficient CPU usage, less overhead from thread creation/destruction, and improved overall application performance.
Key Elements
- Thread Pool: A fixed or dynamically sized set of threads that carry out tasks.
- Task Submission: Tasks (e.g.,
RunnableorCallable) are placed in a queue for execution. - Executor / ExecutorService: Provides an interface for submitting tasks (
execute,submit) and managing the pool (shutdown, etc.). - Resource Management: Reusing threads reduces overhead and improves response time in high-load scenarios.
References
- Java Documentation for
ThreadPoolExecutor - Java Concurrency in Practice (Brian Goetz)
- Java Design Patterns - Contribution Guidelines
Acceptance Criteria
- [ ] Create a new module or package named
thread-pool-executor(or similar). - [ ] Demonstrate how tasks can be submitted to an executor service and processed by a pool of threads.
- [ ] Provide a README (or
.mdfile) explaining the pattern, including code examples, diagrams, or both. - [ ] Ensure all code follows the repository’s style, naming conventions, and best practices.
- [ ] Include unit tests that confirm correct behavior under load (multiple tasks) and confirm proper shutdown.
- [ ] Pass all continuous integration checks and meet the project’s contribution guidelines.
Hi, I'd like to take on this issue. Could you please assign it to me? Thank you!