Основна потреба в нитках theadpool полягає в тому, щоб вирішувати короткі невеликі завдання, які, як очікується, завершаться майже миттєво. Апаратні обробники переривань часто запускаються в контексті складання, який не підходить для коду, який не є ядром, але апаратний обробник переривань може виявити, що зворотний виклик завершення вводу / виводу в режимі користувача повинен бути запущений якнайшвидше. Створення нової нитки з метою запуску такої речі було б масовим надмірним. Наявність декількох попередньо створених потоків, які можна відправити для запуску зворотних викликів завершення вводу / виводу або інших подібних речей, набагато ефективніше.
Ключовим аспектом таких потоків є те, що якщо методи завершення вводу / виводу завжди завершуються по суті миттєво і ніколи не блокуються, а кількість таких потоків, які в даний час виконують такі методи, принаймні дорівнює кількості процесорів, єдиний спосіб будь-якого іншого потоку може запускатися до завершення одного з вищезазначених методів, якщо один з блоків інших методів або час його виконання перевищує звичайний відрізок часу для нарізки; жоден з цих випадків не повинен траплятися дуже часто, якщо пул потоків використовується за призначенням
Якщо метод не може очікувати виходу протягом 100 мс або більше, коли він починає виконання, метод повинен бути виконаний за допомогою інших засобів, крім основного пулу потоків. Якщо у вас є безліч завдань, які є інтенсивними процесорами, але не блокуються, може бути корисним відправлення їх за допомогою пулу ниток додатків (по одному на ядро CPU), який є окремим від "основного" потоку, оскільки використовуєте більше потоків, ніж ядер, будуть контрпродуктивними при виконанні завдань, що не блокують процесор. Якщо, однак, метод займе секунду або більше часу, і він буде витрачати більшу частину свого часу блокованим, метод, ймовірно, повинен бути запущений у спеціальній потоці, і майже напевно не повинен бути запущений у потоці основного потоку. Якщо тривалу операцію потрібно викликати щось на зразок зворотного виклику вводу / виводу,