Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 26065|Antwort: 2

[Quelle] Eine kurze Analyse der Verwendung des .net/C#-Threadpools ThreadPool

[Link kopieren]
Veröffentlicht am 21.06.2017 09:43:20 | | | |
Was ist ein Threadpool? Warum Threadpools verwenden? Wie verwendet man Threadpools?

1. Was ist ein Threadpool?

        Die ThreadPool-Klasse des .NET Frameworks stellt einen Threadpool bereit, der zum Ausführen von Aufgaben, zum Senden von Arbeitsobjekten, zur Verwaltung asynchroner I/O, zum Warten im Auftrag anderer Threads und zur Verwaltung von Timern verwendet werden kann. Was ist also ein Threadpool? Der Thread-Pool ist tatsächlich ein "Pool", der Thread-Objekte speichert und einige grundlegende Methoden bereitstellt, wie zum Beispiel das Festlegen der Mindest- bzw. Maximalanzahl von Threads im Pool, das Warteschlangen der auszuführenden Methoden usw. ThreadPool ist eine statische Klasse, daher kann sie direkt verwendet werden, ohne Objekte zu erstellen.

2. Warum Thread-Pools verwenden? Was sind die Vorteile?

        Die offizielle Website von Microsoft sagt Folgendes: Viele Anwendungen erstellen eine große Anzahl von Threads, die schlafen und auf Ereignisse warten. Es gibt auch viele Threads, die in den Winterschlaf gehen, nur um regelmäßig aufzuwachen und nach geänderten oder aktualisierten Zustandsinformationen abzufragen. Thread-Pools, die es ermöglichen, Threads effizienter durch einen Pool von Worker-Threads zu nutzen, die vom System verwaltet werden.

        Kurz gesagt: Jeder neue Thread muss Speicherplatz und andere Ressourcen belegen, und bei so vielen neuen Threads sind viele davon inaktiv oder warten darauf, dass Ressourcen freigegeben werden. Es gibt viele Threads, die nur gelegentlich kleine Arbeiten erledigen, wie das Auffrischen von Daten usw., die zu verschwenderisch sind, um sie zu zeichnen, und es ist selten, dass eine große Anzahl von Threads in der eigentlichen Programmierung herausbricht und dann in kurzer Zeit endet. Daher wurde das Konzept der Thread-Pools vorgeschlagen. Wenn die Anwendung eine weitere Anfrage an den Threadpool stellt, wird der Thread im ausstehenden Zustand aktiviert und führt die Aufgabe aus, ohne einen neuen Thread zu erstellen, was viel Overhead spart. Das System vernichtet Threads automatisch nur, wenn die maximale Anzahl der Threads erreicht ist. Daher können die Nutzung von Thread-Pools hohe Kosten für Erstellung und Zerstörung vermeiden, bessere Leistung und Stabilität bieten, und zweitens können sich Entwickler auf andere Aufgaben konzentrieren, indem sie Threads an das Systemmanagement übergeben.


3. Wie benutze ich Threadpools?

Tatsächlich sind Thread-Pools sehr einfach zu bedienen, wie folgt

a. Setzen Sie den maximalen und minimalen Threadpool:

ThreadPool.SetMaxThreads (int workerThreads,int completionPortThreads)
Stellen Sie die Anzahl der Anfragen für einen Pool von Threads fest, die gleichzeitig aktiv sein können. Alle Anfragen größer als diese Anzahl bleiben in der Warteschlange, bis der Threadpool-Thread verfügbar wird. Du kannst auch die Mindestanzahl der Threads festlegen.

b. Aufgaben zum Threadpool hinzufügen:

ThreadPool.QueueUserWorkItem(neuer WaitCallback(Methodenname));

oder
ThreadPool.QueueUserWorkItem (neuer WaitCallback(Methodenname), Parameter);

Wenn zum Beispiel maximal 5 Threads im Threadpool eine Methode 60-mal ausführen, beträgt das Gesamtgehalt für 5 Jahre wie folgt:



Wenn du kein Thread-Pooling verwendest, musst du möglicherweise 60 Threads öffnen, um die Run()-Methode asynchron auszuführen, was eine Verschwendung von Speicherressourcen ist. Jetzt verwenden wir bis zu 5 Threads, die in 1 Sekunde ausgeführt werden können, und Effizienz und Leistung sind sehr gut.





Vorhergehend:Baidu-Karte Vollbild-Code (Div-Vollbild-Code)
Nächster:Alibaba Clouds illegale URL-Blockierungsbenachrichtigung zur Bearbeitung des Zugriffs
 Vermieter| Veröffentlicht am 21.06.2017 09:47:12 |

Threadpools haben folgende Vorteile:

1. Im Multithreading kann der Threadpool die Anzahl der erstellten Threads reduzieren und die Threads im Threadpool vernünftig wiederverwenden. Weil Threads mit Threads im Thread-Pool auf die Zuweisung warten.

2. Es ist nicht notwendig, Threads mit kurzer Lebensdauer zu verwalten und zu pflegen, keine Ressourcen ihnen bei der Erstellung zuzuweisen und Ressourcen nach Abschluss ihrer Aufgaben freizugeben.

3. Der Threadpool optimiert die Threads im Pool entsprechend den aktuellen Systemeigenschaften.

Nachteile von Threadpools:

Nachdem wir die Aufgabe an den Threadpool übergeben haben, können wir die Priorität des Threads nicht kontrollieren, einige Namen der Threads festlegen und andere Informationen nicht mehr festlegen. [Aber wir können eine Schicht hinzufügen, um das zu verfeinern, bevor wir es in den Threadpool legen]

Veröffentlicht am 06.12.2017 11:28:49 |
Markiere es zuerst, damit du später lernen kannst
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com