Ⅰ java for循環中創建線程池
首先要明確線程池的意思,就是線程預先創建好放在一個池裡面,使用後不會銷毀
要區分任務和線程池,任務可以不斷添加,但是線程池裡線程的個數是固定的,當任務數超過線程數後,後面的任務需要等待有空閑的線程才會執行
所以不斷添加任務沒有關系,如果池中有50個線程,你添加100個任務同一時間也只會執行50個任務,剩下的50個任務需要等待前面的任務執行完畢後繼續執行
所以你的主線程原則上可以不斷for,但是你總得有個結束點吧
Ⅱ java四種線程池創建
Java提供了多種線程池創建方式,以適應不同的並發需求。首先,newFixedThreadPool是創建一個固定大小的核心線程池,適合控制並發數,新任務按順序排隊等待執行。其次,newSingleThreadExecutor確保任務順序執行,適合需要任務按提交順序處理的場景。
對於執行大量短期非同步任務,newCachedThreadPool則是自動調整大小的線程池,線程數量隨任務需求動態增減。另外,newScheledThreadPool則支持定時和周期性任務,核心線程固定且能處理ScheledTask,如定時執行或周期執行。
然而,DelayedWorkQueue並非線程池本身,而是Java並發包中的介面,用於表示支持延遲元素的工作隊列。DelayedQueue是其實現之一,如DelayedWorkQueue介面中的getDelay方法,用於處理具有時間限制的任務,如定時任務的調度。
總的來說,Java的線程池類型豐富多樣,開發者可以根據任務的特性選擇最合適的線程池來優化並發性能和資源管理。