使用執行緒池的好處有很多,例如節省系統資源的開銷,節省建立和銷毀執行緒的時間等,當我們需要處理的任務較多時,就可以使用執行緒池,可能還有很多使用者不知道Java執行緒池如何使用?今天就來跟大家分享Java四種執行緒池的使用方法。
執行緒池介紹:
執行緒池是一種多執行緒處理形式,處理過程中將任務新增至佇列,然後在建立執行緒後自動啟動這些任務。線程池線程都是後台線程。每個執行緒都使用預設的堆疊大小,以預設的優先權運行,並處於多執行緒單元中。如果某個執行緒在託管程式碼中空閒(如正在等待某個事件),則執行緒池將插入另一個輔助執行緒來使所有處理器保持繁忙。如果所有執行緒池執行緒都始終保持繁忙,但佇列中包含掛起的工作,則執行緒池將在一段時間後建立另一個輔助執行緒但執行緒的數目永遠不會超過最大值。超過最大值的執行緒可以排隊,但他們要等到其他執行緒完成後才啟動。
Java四種執行緒池的使用:
Java透過Executors提供四種執行緒池,分別為:
# newCachedThreadPool 建立一個可快取線程池,如果線程池長度超過處理需要,可靈活回收空閒線程,若無可回收,則新建線程。
newFixedThreadPool 建立一個定長執行緒池,可控制執行緒最大並發數,超出的執行緒會在佇列中等待。
newScheduledThreadPool 建立一個定長執行緒池,支援定時及週期性任務執行。
newSingleThreadExecutor 建立一個單執行緒化的執行緒池,它只會用唯一的工作執行緒來執行任務,並保證所有任務都按照指定順序(FIFO, LIFO, 優先權)執行。
眾多java訓練影片,盡在PHP中文網,歡迎線上學習!
以上是什麼是java執行緒池的詳細內容。更多資訊請關注PHP中文網其他相關文章!