Skip to content

Implement Thread-Pool Executor pattern #3226

Closed
@iluwatar

Description

@iluwatar

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., Runnable or Callable) 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

  1. Java Documentation for ThreadPoolExecutor
  2. Java Concurrency in Practice (Brian Goetz)
  3. 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 .md file) 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.

Metadata

Metadata

Assignees

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions