Java中的線程池有以下幾種:
1.FixedThreadPool:固定大小的線程池,創建時需要指定線程池的大小,當線程池中的線程都在執行任務時,新的任務需要等待。
2.CachedThreadPool:可緩存的線程池,可以無限擴大線程池的大小,當線程池中的線程空閑一定時間后,會被回收,當有新的任務需要執行時,又會重新創建一個新的線程。
3.SingleThreadPool:只有一個線程的線程池,所有任務按照指定順序在該線程中執行,如果該線程異常結束,會重新創建一個新的線程繼續執行任務,保證任務的順序性。
4.ScheduledThreadPool:定時執行任務的線程池,支持延遲執行和定時執行兩種任務,可以用于定時任務、定時檢查等場景。
5.WorkStealingPool:工作竊取線程池,該線程池默認創建的線程數是 CPU 核心數,線程使用雙端隊列,當一個線程執行完自己的任務后,會從其他線程的隊列中竊取任務來執行,保證任務的平衡性和執行效率。