Приклад реального життя;
- Заклад: Операційна система
- Розділи: Програми
- Люди: Нитки
У вас є заклад, де працюють 12 людей. У цьому закладі є 3 секції. Кухня, туалети та охорона. Якщо ви не використовуєте техніку пулу з нитками, ось так це працює: Усі 12 людей будуть стояти в залі для нарад, якщо нові клієнти приїжджатимуть за бажанням і запитуватимуть завдання, то ви розділите людей по групах і відправте їх виконати свою роботу , і поверніться до зали засідань. Але, перш ніж перейти до виконання своїх обов'язків, проходить підготовчий етап. Їм потрібно надіти правильну форму, обладнати певні пристрої і піти до цього розділу, закінчити роботу та повернутися. Отже, раз у раз, коли вони закінчують свою роботу (кінчики ниток), їм потрібно повертатися до зали засідань, роздягати обмундирування, виймати обладнання та чекати наступної роботи. Вони стосуються створення контексту потоку, його розподілу пам'яті та відстеження інформації ОС.
Якщо ви використовуєте об'єднання ниток, то рано вранці ви призначите 6 людей на кухню, 2 людини для туалету та 4 людини для безпеки. Отже, вони будуть робити свою підготовку лише раз на день. Навіть якщо на кухні немає клієнтів, ці 4 людини будуть там, простоюючи, для будь-яких майбутніх завдань. Їм не потрібно повертатися в зал для нарад, поки кухня не закриється (додаток закінчується). Ці 4 людини знаходяться у басейні додатків Кухня та готові швидко обслуговуватись. Але не можна пообіцяти, що вони працюють цілий день, оскільки кухня може час від часу простоювати. Ця ж логіка застосовується і для туалетів та безпеки.
У першому сценарії ви не витрачаєте жодної нитки на будь-яке завдання, Але потрібно буде багато часу, щоб підготувати кожну нитку до кожного завдання. По-друге, ви готуєте теми заздалегідь, тому ви не можете гарантувати, що ви будете використовувати всі потоки для всіх завдань, але ОС в основному робить велику оптимізацію на ній, тому ви можете сміливо покладатися на неї.