Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 26065|Antwoord: 2

[Bron] Een korte analyse van het gebruik van .net/C# threadpool ThreadPool

[Link kopiëren]
Geplaatst op 21-06-2017 09:43:20 | | | |
Wat is een threadpool? Waarom threadpools gebruiken? Hoe gebruik je threadpools?

1. Wat is een threadpool?

        De ThreadPool-klasse van het .NET Framework biedt een threadpool die gebruikt kan worden om taken uit te voeren, werkitems te verzenden, asynchrone I/O te verwerken, namens andere threads te wachten en timers te verwerken. Wat is een threadpool eigenlijk? De threadpool is eigenlijk een "pool" die threadobjecten opslaat en biedt enkele basismethoden, zoals het instellen van het minimum/maximum aantal threads in de pool, het in de wachtrij zetten van de uit te voeren methoden, enzovoort. ThreadPool is een statische klasse, dus het kan direct worden gebruikt zonder objecten aan te maken.

2. Waarom threadpools gebruiken? Wat zijn de voordelen?

        De officiële website van Microsoft zegt het volgende: Veel applicaties maken een groot aantal threads aan die in slaap liggen en wachten op gebeurtenissen. Er zijn ook veel discussies die in winterslaap kunnen gaan om vervolgens periodiek wakker te worden en te peilen op gewijzigde of bijgewerkte statusinformatie. Threadpools, waarmee je threads efficiënter kunt gebruiken via een pool van worker-threads die door het systeem worden beheerd.

        Kort gezegd moet elke nieuwe thread geheugenruimte en andere bronnen innemen, en met zoveel nieuwe threads zijn veel daarvan inactief of wachten ze op het vrijgeven van resources. Er zijn veel threads die slechts periodiek klein werk doen, zoals data verversen, enzovoort, die te verspilling zijn om te tekenen, en het is zeldzaam dat een groot aantal threads in het echte programmeren uitbreekt en daarna binnen korte tijd eindigt. Daarom werd het concept van threadpools voorgesteld. Als de applicatie een nieuw verzoek doet aan de threadpool, wordt de thread in de wachtende status geactiveerd en voert de taak uit zonder een nieuwe thread aan te maken, wat veel overhead bespaart. Het systeem vernietigt threads automatisch alleen wanneer het aantal threads het maximale aantal threads bereikt. Daarom kunnen het gebruik van threadpools grote kosten voor creatie en vernietiging voorkomen, betere prestaties en stabiliteit bieden, en ten tweede kunnen ontwikkelaars zich op andere taken richten door threads over te dragen aan het systeembeheer.


3. Hoe gebruik ik threadpools?

Threadpools zijn zelfs heel eenvoudig te gebruiken, als volgt, als volgt

a. Stel de maximale en minimale threadpool in:

ThreadPool.SetMaxThreads (int workerThreads,int completionPortThreads)
Stel het aantal verzoeken in voor een pool van threads die tegelijkertijd actief kunnen zijn. Alle verzoeken groter dan dit aantal blijven in de wachtrij totdat de threadpool-thread beschikbaar is. Je kunt ook het minimale aantal threads instellen.

b. Taken toevoegen aan de threadpool:

ThreadPool.QueueUserWorkItem(nieuwe WaitCallback(methodnaam));

of
ThreadPool.QueueUserWorkItem (nieuwe WaitCallback(methodenaam), parameter);

Als bijvoorbeeld maximaal 5 threads in de threadpool een methode 60 keer uitvoeren, is het totale salaris voor 5 jaar als volgt:



Als je geen threadpooling gebruikt, moet je misschien 60 threads openen om de Run()-methode asynchroon uit te voeren, wat zonde van de ruimte is. Nu gebruiken we tot 5 threads, die in 1 seconde kunnen worden uitgevoerd, en de efficiëntie en prestaties zijn erg goed.





Vorig:Baidu Kaart Volledige Schermcode (div Volledige Schermcode)
Volgend:Alibaba Cloud's illegale URL blokkeert toegangsverwerkingsmelding
 Huisbaas| Geplaatst op 21-06-2017 09:47:12 |

Threadpools hebben deze voordelen:

1. Bij multithreading kan de threadpool het aantal threads dat we aanmaken verminderen en redelijkerwijs de threads in de threadpool hergebruiken. Omdat threads met threads in de threadpool in een staat van wachten om toegewezen te worden.

2. Er is geen noodzaak om threads met korte levensduur te beheren en te onderhouden, geen middelen aan hen toe te wijzen wanneer ze worden aangemaakt, en middelen vrij te geven nadat ze hun taken hebben voltooid.

3. De threadpool optimaliseert de threads in de pool volgens de huidige systeemkenmerken.

Nadelen van threadpools:

Nadat we de taak aan de threadpool hebben overgedragen om af te ronden, kunnen we de prioriteit van de thread niet meer bepalen, geen enkele namen van de threads instellen en andere informatie gebruiken. [Maar we kunnen een laag toevoegen om dit te verfijnen voordat we het in de threadpool plaatsen]

Geplaatst op 06-12-2017 11:28:49 |
Markeer het eerst, zodat je later kunt leren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com