Heim > Java > JavaBase > Hauptteil

Welche vier Möglichkeiten gibt es, einen Thread-Pool in Java zu erstellen?

hzc
Freigeben: 2020-07-04 15:44:43
Original
11289 Leute haben es durchsucht

Die vier Möglichkeiten, wie Java einen Thread-Pool erstellt, sind: 1. newCachedThreadPool erstellt einen zwischenspeicherbaren Thread-Pool. 2. newFixedThreadPool erstellt einen Thread-Pool fester Länge.

Welche vier Möglichkeiten gibt es, einen Thread-Pool in Java zu erstellen?

Java stellt über Executors vier Thread-Pools bereit:
newCachedThreadPool erstellt einen zwischenspeicherbaren Thread-Pool. Wenn die Länge des Thread-Pools den Verarbeitungsbedarf übersteigt, kann dies geschehen Leerlauf-Threads flexibel recyceln Wenn es keine Möglichkeit gibt, Leerlauf-Threads wiederzuverwenden, erstellen Sie neue Threads.

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 einen eindeutigen Arbeitsthread zum Ausführen von Aufgaben verwendet und sicherstellt, dass alle Aufgaben in der angegebenen Reihenfolge (FIFO, LIFO, Priorität) ausgeführt werden.

Weitere Informationen finden Sie im Blog des Bloggers Java Concurrent Programming: Verwendung des Thread-Pools

1.newCachedThreadPool Der Thread-Pool hier ist unendlich. Wenn ein Thread seine Aufgabe abschließt, kann dieser Thread als Nächstes ausgeführt werden Schließen Sie die zugewiesene Aufgabe ab, anstatt einen neuen Thread zu erstellen.

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

2.newFixedThreadPool

public static void main(String[] args) {  
        ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);  
        for (int i = 0; i < 10; i++) {  
            final int index = i;  
            fixedThreadPool.execute(new Runnable() {  
                public void run() {  
                    try {  
                        System.out.println(index);  
                        Thread.sleep(10);  
                    } catch (InterruptedException e) {  
                        e.printStackTrace();  
                    }  
                }  
            });  
        }  
    }
Nach dem Login kopieren

3.newScheduledThreadPoo

public static void main(String[] args) {  
        ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);  
        for (int i = 0; i < 10; i++) {  
            scheduledThreadPool.schedule(new Runnable() {  
                public void run() {  
                    System.out.println("delay 3 seconds");  
                }  
            }, 3, TimeUnit.SECONDS);  
        }  
  
    }
Nach dem Login kopieren

4.newSingleThreadExecutor führt Thread-Aufgaben nacheinander aus. Aber im Gegensatz zu einem einzelnen Thread kann dieser Thread-Pool nur in einem Thread existieren , nachdem dieser Thread beendet ist, wird ein anderer Thread ausgefüllt

public static void main(String[] args) {  
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();  
        for (int i = 0; i < 10; i++) {  
            final int index = i;  
            singleThreadExecutor.execute(new Runnable() {  
                public void run() {  
/*                  System.out.println(index);*/  
                    try {  
                        System.out.println(index);  
                        Thread.sleep(2000);  
                    } catch (InterruptedException e) {  
                        e.printStackTrace();  
                    }  
                }  
            });  
        }  
    }
Nach dem Login kopieren

Empfohlenes Tutorial: „Java-Tutorial

Das obige ist der detaillierte Inhalt vonWelche vier Möglichkeiten gibt es, einen Thread-Pool in Java zu erstellen?. 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