Przykład z życia;
- Obiekt: system operacyjny
- Sekcje: Aplikacje
- Ludzie: wątki
Masz placówkę, w której pracuje 12 osób. Istnieją 3 sekcje tego obiektu. Kuchnia, toalety i bezpieczeństwo. Jeśli nie użyjesz techniki puli wątków, tak to działa: wszystkie 12 osób będzie stać w pokoju konferencyjnym, jeśli nowi klienci przyjdą według placówki i poproszą o zadania, to rozdzielisz osoby w grupach i wyślesz je do pracy i wróć do pokoju konferencyjnego. Ale zanim przejdą do służby, następuje faza przygotowawcza. Muszą nosić odpowiedni mundur, wyposażyć niektóre urządzenia i przejść do tej sekcji, dokończyć pracę i wrócić. Dlatego za każdym razem, gdy kończą pracę (kończą się nici), muszą wracać do pokoju konferencyjnego, rozbierać mundur, wyjmować sprzęt i czekać na następną pracę. Odnoszą się one do tworzenia kontekstu wątku, jego alokacji pamięci i informacji śledzenia przez system operacyjny.
Jeśli używasz łączenia wątków, wczesnym rankiem przypiszesz 6 osób do kuchni, 2 osoby do toalety i 4 osoby do ochrony. Więc będą przygotowywać się tylko raz dziennie. Nawet jeśli w kuchni nie ma klientów, te 4 osoby będą na biegu jałowym, czekając na nadchodzące zadania. Nie muszą wracać do pokoju konferencyjnego, dopóki kuchnia się nie zamknie (aplikacja się kończy). Te 4 osoby znajdują się w puli aplikacji Kuchnia i są gotowe do szybkiego podania. Ale nie możesz obiecać, że pracują cały dzień, ponieważ kuchnia może od czasu do czasu stać się bezczynna. Ta sama logika dotyczy również toalet i bezpieczeństwa.
W pierwszym scenariuszu nie marnujesz żadnego wątku na żadne zadanie, ALE przygotowanie każdego wątku na każde zadanie zajmie dużo czasu. Po drugie, przygotowujesz wątki z wyprzedzeniem, więc nie możesz zagwarantować, że będziesz używać wszystkich wątków do wszystkich zadań, ale system operacyjny głównie dokonuje na nim wielkiej optymalizacji, więc możesz na nim bezpiecznie polegać.