Thread pool არის ფიქსირებული ხელახლა გამოყენებადი worker thread-ების ნაკრები, რომლებიც იღებენ დავალებებს გაზიარებული work queue-დან. ის აცილებს თითო დავალებაზე thread-ის შექმნის ხარჯს და ზღუდავს თანადროული thread-ების რაოდენობას.
რატომ გამოვიყენოთ
Thread-ების შექმნა და განადგურება ძვირია (stack-ის გამოყოფა, OS scheduling-ის მომზადება) და thread-ების შეუზღუდავი შექმნა ამოწურავს მეხსიერებას და იწვევს context-switch thrashing-ს. Pool ანაწილებს შექმნის ხარჯს და ზღუდავს თანადროულობას.
tasks → [ work queue ] → worker 1
worker 2 (N ფიქსირებული worker იღებს და უშვებს)
worker 3
