Heim  >  Artikel  >  Java  >  Was sind die vier Thread-Pools in Java Executors?

Was sind die vier Thread-Pools in Java Executors?

王林
王林nach vorne
2023-05-14 18:01:061506Durchsuche

1. Thread-Pool-Beschreibung

newCachedThreadPool erstellt einen Cache-Thread-Pool. Wenn die Länge des Thread-Pools den Verarbeitungsbedarf überschreitet, können neue Threads flexibel recycelt werden.

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

newScheduledThreadPool richtet einen festen langfristigen Thread-Pool ein, um die Ausführung geplanter und periodischer Aufgaben zu unterstützen.

newSingleThreadExecutor erstellt einen Single-Threaded-Thread-Pool, der nur einen eindeutigen Arbeitsthread zum Ausführen von Aufgaben verwenden kann, um sicherzustellen, dass alle Aufgaben in der angegebenen Reihenfolge ausgeführt werden.

2. Beispiel

class ThreadDemo extends Thread {
 
    @Override
 
    public void run() {
 
        System.out.println(Thread.currentThread().getName() + "正在执行");
 
    }
 
}
 
class TestFixedThreadPool {
 
        public static void main(String[] args) {
 
        //创建一个可重用固定线程数的线程池
 
        ExecutorService pool = Executors.newFixedThreadPool(2);
 
        //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口
 
        Thread t1 = new ThreadDemo();
 
        Thread t2 = new ThreadDemo();
 
        Thread t3 = new ThreadDemo();
 
        Thread t4 = new ThreadDemo();
 
        Thread t5 = new ThreadDemo();
 
        //将线程放入池中进行执行
 
        pool.execute(t1);
 
        pool.execute(t2);
 
        pool.execute(t3);
 
        pool.execute(t4);
 
        pool.execute(t5);
 
        //关闭线程池
 
        pool.shutdown();
 
        }
 
        }

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen