Was bedeuten Java-Thread-Pool-Parameter?
Thread-Pool-Technologie wird häufig in der Java-Multithread-Entwicklung verwendet. Dieser Artikel enthält eine detaillierte Erläuterung der sieben Parameter beim Erstellen eines Java-Thread-Pools.
Wie aus dem Quellcode ersichtlich ist, verfügt der Konstruktor des Thread-Pools über 7 Parameter.
Diese 7 Parameter sind:
corePoolSize: die Anzahl der Kernthreads.
maximumPoolSize: Maximale Anzahl von Threads.
keepAliveTime: Überlebenszeit des Leerlauf-Threads.
TimeUnit: Zeiteinheit.
BlockingQueue: Thread-Pool-Aufgabenwarteschlange.
ThreadFactory: Factory zum Erstellen von Threads.
RejectedExecutionHandler: Ablehnungsstrategie.
Diese 7 Parameter werden im Folgenden einzeln erklärt.
1. corePoolSize Thread-Pool-Kern-Thread-Größe
Der Thread-Pool behält eine Mindestanzahl von Threads bei. Auch wenn diese Threads den Leerlaufstatus verarbeiten, werden sie nicht zerstört, es sei denn, „allowCoreThreadTimeOut“ ist festgelegt. Die Mindestanzahl an Threads beträgt hier corePoolSize.
2. MaximumPoolSize Die maximale Anzahl von Threads im Thread-Pool
Nachdem eine Aufgabe an den Thread-Pool übermittelt wurde, wird zunächst festgestellt, ob noch inaktive Threads vorhanden sind. Wenn ja, wird die Aufgabe direkt übergeben Wenn dies nicht der Fall ist, wird es in der Arbeitswarteschlange zwischengespeichert. Wenn die Arbeitswarteschlange voll ist, wird ein neuer Thread erstellt und dann eine Aufgabe aus der Arbeitswarteschlange entfernt Kopf der Arbeitswarteschlange und zur Verarbeitung an den neuen Thread übergeben, und die neu übermittelte Aufgabe wird am Ende der Arbeitswarteschlange platziert. Der Thread-Pool erstellt keine unbegrenzten Threads. Die maximale Anzahl von Threads ist durch MaximumPoolSize begrenzt.
3. keepAliveTime-Thread-Überlebenszeit im Leerlauf
Wenn ein Thread inaktiv ist und die aktuelle Anzahl der Threads größer als corePoolSize ist, wird der inaktive Thread nach der angegebenen Zeit zerstört. Die hier angegebene Zeit wird durch keepAliveTime festgelegt
4 . Einheit Leerlauf-Thread-Überlebenszeiteinheit
Die Maßeinheit von keepAliveTime
5. workQueue-Arbeitswarteschlange
Nachdem eine neue Aufgabe übermittelt wurde, wird sie zuerst in diese Arbeitswarteschlange eingegeben und dann während der Aufgabenplanung aus der Warteschlange entfernt . In JDK werden vier Arten von Arbeitswarteschlangen bereitgestellt:
①ArrayBlockingQueue
Array-basierte begrenzte Blockierungswarteschlange, sortiert nach FIFO. Nachdem eine neue Aufgabe eingegangen ist, wird sie am Ende der Warteschlange platziert. Das begrenzte Array kann Probleme mit der Ressourcenerschöpfung verhindern. Wenn die Anzahl der Threads im Thread-Pool corePoolSize erreicht und eine neue Aufgabe eingeht, wird die Aufgabe am Ende der Warteschlange platziert und wartet auf die Planung. Wenn die Warteschlange bereits voll ist, wird ein neuer Thread erstellt. Wenn die Anzahl der Threads maxPoolSize erreicht hat, wird die Ablehnungsrichtlinie ausgeführt.
②LinkedBlockingQuene
Unbegrenzte Blockierungswarteschlange basierend auf einer verknüpften Liste (tatsächlich ist die maximale Kapazität Interger.MAX), sortiert nach FIFO. Aufgrund der annähernd unbegrenzten Natur der Warteschlange werden neue Aufgaben in der Warteschlange gespeichert, ohne dass neue Threads erstellt werden, wenn maxPoolSize verwendet wird. Wenn diese Arbeitswarteschlange verwendet wird, ist der Parameter maxPoolSize Tatsächlich funktioniert nicht.
③SynchronousQuene
Eine blockierende Warteschlange, die keine Aufgaben zwischenspeichert. Der Produzent stellt eine Aufgabe ein und muss warten, bis der Verbraucher die Aufgabe herausnimmt. Das heißt, wenn eine neue Aufgabe eingeht, wird sie nicht zwischengespeichert, sondern direkt zur Ausführung der Aufgabe eingeplant. Wenn keine Threads verfügbar sind, wird ein neuer Thread erstellt. Es wird eine Ablehnungsrichtlinie ausgeführt.
④PriorityBlockingQueue
Eine unbegrenzte Blockierungswarteschlange mit Priorität. Die Priorität wird über den Parameter Comparator implementiert.
6. threadFactory-Thread-Factory
Die Factory, die beim Erstellen eines neuen Threads verwendet wird, kann zum Festlegen des Thread-Namens, ob es sich um einen Daemon-Thread usw. handelt, verwendet werden.
7. Handler-Ablehnungsrichtlinie
Wenn die Aufgaben im Die Arbeitswarteschlange hat das maximale Limit erreicht, und die Anzahl der Threads im Thread-Pool hat ebenfalls das maximale Limit erreicht. Wenn zu diesem Zeitpunkt eine neue Aufgabe eingereicht wird, wie wird damit umgegangen? Die Ablehnungsrichtlinie hier soll dieses Problem lösen:
①CallerRunsPolicy
Unter dieser Richtlinie wird die Ausführungsmethode der abgelehnten Aufgabe direkt im Aufrufer-Thread ausgeführt, es sei denn, der Thread-Pool wurde heruntergefahren Aufgabe direkt bearbeiten.
②AbortPolicy
Unter dieser Richtlinie wird die Aufgabe direkt verworfen und eine RejectedExecutionException ausgelöst.
③DiscardPolicy
Unter dieser Richtlinie wird die Aufgabe direkt verworfen und es wird nichts unternommen.
④DiscardOldestPolicy
Unter dieser Richtlinie verwerfen Sie die früheste Aufgabe, die in die Warteschlange gelangt, und versuchen Sie dann, die abgelehnte Aufgabe in die Warteschlange zu stellen
Das obige ist der detaillierte Inhalt vonWas bedeuten Java-Thread-Pool-Parameter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo
