Esempio di vita reale;
- Struttura: sistema operativo
- Sezioni: Applicazioni
- Persone: discussioni
Hai una struttura in cui lavorano 12 persone. Ci sono 3 sezioni di questa struttura. Cucina, servizi igienici e sicurezza. Se non usi la tecnica del pool di thread, è così che funziona: tutte le 12 persone si troveranno in una sala riunioni, se i nuovi clienti verranno dalla struttura e chiederanno dei compiti, allora separerai le persone in gruppi e le invierai a fare il loro lavoro e torna alla sala riunioni. Ma, prima di andare al loro dovere, c'è una fase di preparazione. Devono indossare un'uniforme corretta, equipaggiare determinati dispositivi e camminare verso quella sezione, finire il lavoro e tornare indietro. Quindi, una volta ogni volta che finiscono il loro lavoro (fine del filo), devono tornare alla sala riunioni, svestirsi l'uniforme, prendere le attrezzature e attendere il prossimo lavoro. Questi si riferiscono alla creazione del contesto del thread, l'allocazione della memoria e le informazioni di tracciamento dal sistema operativo. È troppo dispendioso in termini di tempo per il sistema operativo per riorganizzare le nuove esigenze di thread.
Se si utilizza il pooling di thread, quindi, al mattino presto, assegnerà 6 persone alla cucina, 2 persone al bagno e 4 persone alla sicurezza. Quindi, faranno la loro preparazione solo una volta al giorno. Anche se non ci sono clienti in cucina, quelle 4 persone saranno lì, al minimo, per eventuali attività imminenti. Non è necessario tornare alla sala riunioni finché la cucina non si chiude (l'app termina). Queste 4 persone si trovano nel pool di app di Kitchen e sono pronte a servire rapidamente. Ma non puoi prometterti che stanno lavorando tutto il giorno, dal momento che la cucina può essere inattiva di tanto in tanto. La stessa logica si applica anche ai servizi igienici e alla sicurezza.
Nel primo scenario, non si spreca alcun thread per nessuna attività, MA ci vorrà una buona quantità di tempo per preparare ogni singolo thread per ogni attività. Nella seconda, preparate i thread in anticipo, quindi non potete garantire che userete tutti i thread per tutte le attività, ma il sistema operativo è in gran parte ottimizzato, quindi potete fare affidamento su di esso.