Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 26065|Risposta: 2

[Fonte] Una breve analisi dell'uso del pool di thread .net/C# ThreadPool

[Copiato link]
Pubblicato su 21/06/2017 09:43:20 | | | |
Cos'è un pool di thread? Perché usare i pool di thread? Come usare i pool di thread?

1. Cos'è un pool di fili?

        La classe ThreadPool del .NET Framework fornisce un pool di thread che può essere utilizzato per eseguire compiti, inviare elementi di lavoro, gestire I/O asincroni, attendere per conto di altri thread e gestire timer. Quindi cos'è un pool di thread? Il pool di thread è in realtà un "pool" che memorizza gli oggetti thread e fornisce alcuni metodi di base, come impostare il numero minimo/massimo di thread nel pool, mettere in coda i metodi da eseguire, ecc. ThreadPool è una classe statica, quindi può essere usata direttamente senza creare oggetti.

2. Perché usare i pool di thread? Quali sono i benefici?

        Il sito ufficiale di Microsoft dice quanto segue: molte applicazioni creano un gran numero di thread che sono in sospeso, in attesa che gli eventi si verifichino. Ci sono anche molti thread che possono andare in ibernazione solo per svegliarsi periodicamente e consultare informazioni di stato modificate o aggiornate. Pool di thread, che ti permettono di utilizzare i thread in modo più efficiente attraverso un pool di thread worker gestito dal sistema.

        Per dirla semplicemente, ogni nuovo thread deve occupare spazio di memoria e altre risorse, e con così tanti nuovi thread, molti di loro sono dormienti o in attesa del rilascio delle risorse. Ci sono molti thread che svolgono solo qualche piccolo lavoro periodicamente, come aggiornare dati, ecc., che sono troppo dispendiosi per essere disegnati, ed è raro che un gran numero di thread si sviluppi nella programmazione vera e poi termini in un breve periodo di tempo. Pertanto, fu proposto il concetto di pool di fili. Se l'applicazione effettua un'altra richiesta al pool di thread, il thread in stato di sospeso viene attivato ed esegue il compito senza creare un nuovo thread, risparmiando così molti sovrapposti. Il sistema distruggerà automaticamente i thread solo quando il numero di thread raggiungerà il massimo di thread. Pertanto, l'uso dei pool di thread può evitare grandi spese di creazione e distruzione, avere migliori prestazioni e stabilità e, in secondo luogo, gli sviluppatori possono concentrarsi su altri compiti affidando i thread alla gestione del sistema.


3. Come uso i pool di fili?

In effetti, i pool di thread sono molto semplici da usare, come segue

a. Impostare il pool massimo e minimo di thread:

ThreadPool.SetMaxThreads (int workerThreads,int completionPortThreads)
Imposta il numero di richieste per un pool di thread che possono essere attivi contemporaneamente. Tutte le richieste superiori a questo numero rimarranno in coda finché il thread pool non sarà disponibile. Puoi anche impostare il numero minimo di thread.

b. Aggiungi attività al pool di thread:

ThreadPool.QueueUserWorkItem(nuovo WaitCallback(nome del metodo));

o
ThreadPool.QueueUserWorkItem (nuovo WaitCallback(nome metodo), parametro);

Ad esempio, se un massimo di 5 thread nel pool di thread esegue un metodo 60 volte, lo stipendio totale per 5 anni è il seguente:



Se non usi il thread pooling, potresti dover aprire 60 thread per eseguire il metodo Run() in modo asincrono, il che è uno spreco di risorse di spazio. Ora usiamo fino a 5 thread, che possono essere eseguiti in 1 secondo, e l'efficienza e le prestazioni sono molto buone.





Precedente:Codice a schermo intero della mappa Baidu (codice a schermo intero div)
Prossimo:Avviso illegale di blocco di accesso di Alibaba Cloud
 Padrone di casa| Pubblicato su 21/06/2017 09:47:12 |

I pool di thread hanno questi vantaggi:

1. Nel multi-threading, il pool di thread può ridurre il numero di thread che creiamo e riutilizzare ragionevolmente i thread nel pool di thread. Perché i thread con thread nel pool di thread sono in attesa di essere assegnati.

2. Non è necessario gestire e mantenere thread con vita breve durata, né allocare risorse al momento della loro creazione e rilasciare risorse dopo aver completato i compiti.

3. Il pool di thread ottimizza i thread nel pool in base alle caratteristiche attuali del sistema.

Svantaggi dei pool di fili:

Dopo aver passato il compito al pool di thread per completarlo, non possiamo controllare la priorità del thread, impostare alcuni nomi dei thread e altre informazioni. [Ma possiamo aggiungere uno strato per perfezionare questo prima di inserirlo nel pool di thread]

Pubblicato su 06/12/2017 11:28:49 |
Segnalo prima, così potrai imparare dopo
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com