Heim > Java > JavaBase > Was ist Thread-Pool in Java?

Was ist Thread-Pool in Java?

(*-*)浩
Freigeben: 2019-11-12 09:38:16
Original
2341 Leute haben es durchsucht

Thread-Pool ist eine Form des Multithreadings, das während der Verarbeitung Aufgaben zu einer Warteschlange hinzufügt und diese Aufgaben dann automatisch startet, nachdem der Thread erstellt wurde. Thread-Pool-Threads sind Hintergrund-Threads. Jeder Thread verwendet die Standardstapelgröße, wird mit der Standardpriorität ausgeführt und befindet sich in einem Multithread-Apartment .

Was ist Thread-Pool in Java?

Wenn ein Thread im verwalteten Code inaktiv ist (z. B. beim Warten auf ein Ereignis), fügt der Thread-Pool einen anderen ein Worker-Thread, um alle Prozessoren zu beschäftigen.

Wenn alle Thread-Pool-Threads ständig beschäftigt bleiben, die Warteschlange jedoch ausstehende Arbeit enthält, erstellt der Thread-Pool nach einer Weile einen weiteren Arbeitsthread, aber die Anzahl der Threads wird nie das Maximum überschreiten. Threads, die das Maximum überschreiten, können in die Warteschlange gestellt werden, werden aber erst gestartet, wenn andere Threads fertig sind. (Empfohlenes Lernen: Java-Kurs)

Die Verwendung von vier Thread-Pools in Java:

Java stellt vier Thread-Pools über Executoren bereit bzw.:

newCachedThreadPool erstellt einen zwischenspeicherbaren Thread-Pool. Wenn die Länge des Thread-Pools den Verarbeitungsbedarf überschreitet, können inaktive Threads flexibel recycelt werden. Wenn kein Recycling erfolgt, wird ein neuer Thread erstellt.

newFixedThreadPool erstellt einen Thread-Pool mit fester Länge, der die maximale Anzahl gleichzeitiger Threads steuern kann, die in der Warteschlange warten.

newScheduledThreadPool erstellt einen Thread-Pool fester Länge, der die geplante und periodische Aufgabenausführung unterstützt.

newSingleThreadExecutor erstellt einen Single-Threaded-Thread-Pool, der nur den einzigen Arbeitsthread zum Ausführen von Aufgaben verwendet und sicherstellt, dass alle Aufgaben in der angegebenen Reihenfolge (FIFO, LIFO, Priorität) ausgeführt werden.

newCachedThreadPool

Erstellen Sie einen zwischenspeicherbaren Thread-Pool, wenn die Länge des Thread-Pools den Verarbeitungsbedarf übersteigt Recycling, erstelle einen neuen Thread. Der Beispielcode lautet wie folgt:

package test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExecutorTest {
    public static void main(String[] args) {
        ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
        for (int i = 0; i < 10; i++) {
            final int index = i;
            try {
                Thread.sleep(index * 1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            cachedThreadPool.execute(new Runnable() {
                public void run() {
                    System.out.println(index);
                }
            });
        }
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist Thread-Pool in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage