Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a thread pool?
A thread pool is a group of pre-created threads that are ready to perform tasks. Instead of creating a new thread for each task, the system reuses threads from the pool to save time and resources.
Click to reveal answer
beginner
Why are thread pools used in operating systems?
Thread pools improve performance by reducing the overhead of creating and destroying threads repeatedly. They also help manage system resources better by limiting the number of active threads.
Click to reveal answer
intermediate
How does a thread pool manage tasks?
Tasks are placed in a queue. Threads from the pool take tasks from the queue one by one and execute them. When a thread finishes a task, it returns to the pool to wait for the next task.
Click to reveal answer
intermediate
What happens if all threads in a thread pool are busy and a new task arrives?
The new task waits in the queue until a thread becomes free. This prevents creating too many threads and keeps the system stable.
Click to reveal answer
intermediate
Name one advantage and one disadvantage of using thread pools.
Advantage: Faster task execution due to thread reuse. Disadvantage: If the pool size is too small, tasks may wait too long; if too large, it may waste resources.
Click to reveal answer
What is the main purpose of a thread pool?
ATo delete threads after each task
BTo create a new thread for every task
CTo run tasks sequentially without threads
DTo reuse threads for multiple tasks
✗ Incorrect
Thread pools reuse existing threads to handle multiple tasks efficiently.
What happens to tasks when all threads in the pool are busy?
AThey wait in a queue
BThey are ignored
CThey run without threads
DThey cause the system to crash
✗ Incorrect
Tasks wait in a queue until a thread becomes available.
Which of the following is a benefit of using thread pools?
ASlower task execution
BIncreased overhead from creating threads
CBetter resource management
DUnlimited number of threads
✗ Incorrect
Thread pools help manage system resources by limiting active threads.
How does a thread pool improve performance?
ABy creating threads only when needed
BBy reusing threads instead of creating new ones
CBy running tasks one at a time
DBy avoiding the use of threads
✗ Incorrect
Reusing threads saves time and reduces overhead.
What is a potential downside of having a very small thread pool?
ATasks may wait too long to be executed
BToo many threads consume resources
CThreads never get reused
DTasks run without any delay
✗ Incorrect
A small pool means fewer threads, so tasks may wait longer.
Explain how a thread pool works and why it is useful in managing tasks.
Think about how tasks wait and how threads are reused.
You got /5 concepts.
Describe one advantage and one disadvantage of using thread pools in an operating system.
Consider what happens if the pool is too small or too large.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of a thread pool in an operating system?
easy
A. To create a new thread for every task without limit
B. To store data permanently on disk
C. To reuse a fixed number of threads to run multiple tasks efficiently
D. To manage memory allocation for processes
Solution
Step 1: Understand thread pool concept
A thread pool manages a fixed number of threads to handle many tasks efficiently without creating new threads each time.
Step 2: Compare options with thread pool purpose
Only To reuse a fixed number of threads to run multiple tasks efficiently correctly describes reusing threads for multiple tasks. Other options describe unrelated concepts.
Final Answer:
To reuse a fixed number of threads to run multiple tasks efficiently -> Option C
Quick Check:
Thread pool purpose = reuse threads [OK]
Hint: Thread pools reuse threads, not create new ones each time [OK]
Common Mistakes:
Thinking thread pools create unlimited threads
Confusing thread pools with memory management
Assuming thread pools store data permanently
2. Which of the following is the correct way to describe how tasks are handled in a thread pool?
easy
A. Tasks run only one at a time sequentially
B. Tasks are executed immediately without waiting
C. Tasks are discarded if no thread is free
D. Tasks wait in a queue if all threads are busy
Solution
Step 1: Recall thread pool task management
When all threads are busy, new tasks wait in a queue until a thread becomes free.
Step 2: Evaluate options against this behavior
Tasks wait in a queue if all threads are busy correctly states tasks wait in a queue. Other options are incorrect because tasks are not discarded or run sequentially only.
Final Answer:
Tasks wait in a queue if all threads are busy -> Option D
Quick Check:
Task queueing = waiting tasks [OK]
Hint: Tasks queue up when threads are busy, not discarded [OK]
Common Mistakes:
Believing tasks run immediately always
Thinking tasks get dropped if no thread is free
Assuming tasks run strictly one by one
3. Consider a thread pool with 3 threads. If 5 tasks are submitted at once, how many tasks will be running simultaneously?
medium
A. 3
B. 2
C. 5
D. 0
Solution
Step 1: Understand thread pool capacity
The thread pool has 3 threads, so it can run up to 3 tasks at the same time.
Step 2: Analyze task submission
When 5 tasks are submitted, 3 run immediately (one per thread), and 2 wait in the queue.
Final Answer:
3 -> Option A
Quick Check:
Threads limit running tasks = 3 [OK]
Hint: Running tasks = number of threads in pool [OK]
Common Mistakes:
Assuming all tasks run simultaneously regardless of thread count
Confusing queued tasks with running tasks
Thinking no tasks run if more than threads
4. A developer notices that tasks submitted to a thread pool never start running and remain queued indefinitely. What is the most likely cause?
medium
A. The thread pool size is set to zero
B. Tasks are too short to run
C. The queue is empty
D. The CPU is overloaded
Solution
Step 1: Analyze thread pool size effect
If the thread pool size is zero, no threads exist to run tasks, so tasks remain queued forever.
Step 2: Evaluate other options
Tasks being short or queue empty do not cause indefinite waiting. CPU overload may slow but not block all tasks.
Final Answer:
The thread pool size is set to zero -> Option A
Quick Check:
Zero threads means no task execution [OK]
Hint: Zero threads means no tasks run, causing indefinite queue [OK]
Common Mistakes:
Assuming short tasks cause waiting
Thinking empty queue causes waiting
Blaming CPU overload for all tasks stuck
5. You need to design a thread pool for a server that handles 100 simultaneous client requests. Which approach best balances resource use and performance?
hard
A. Create a thread pool with 100 threads to handle all requests at once
B. Create a thread pool with a fixed smaller number of threads (e.g., 10) and queue extra requests
C. Create a new thread for each request without pooling
D. Use a single thread to handle all requests sequentially
Solution
Step 1: Consider resource limits
Creating 100 threads can exhaust system resources and reduce performance.
Step 2: Evaluate thread pool with queuing
A fixed smaller thread pool (like 10 threads) efficiently reuses threads and queues extra requests, balancing load and resources.
Step 3: Reject other options
Creating new threads per request wastes resources; single thread causes slow sequential handling.
Final Answer:
Create a thread pool with a fixed smaller number of threads (e.g., 10) and queue extra requests -> Option B
Quick Check:
Fixed small pool + queue = balanced performance [OK]
Hint: Use fewer threads than requests, queue extras for efficiency [OK]