當前位置:編程學習大全網 - 編程語言 - SpringBoot使用線程池。

SpringBoot使用線程池。

線程池是壹種線程使用模式。線程太多會帶來額外的成本,包括創建和銷毀線程的成本,調度線程的成本等。,還會降低計算機的整體性能。線程池維護多個線程,等待管理程序分配可以並發執行的任務。這種方式壹方面避免了處理任務時創建和銷毀線程的開銷,另壹方面避免了線程數量膨脹帶來的過度調度問題,保證了內核的充分利用。

使用線程池有幾個優點:

Java開發,我們用的是JDK環境,開發框架基本是Spring family bucket。線程池的基本原理在JDK,JDK1.5增加線程池相關類,在核心jar包rt.jar中,在java.util.concurrent下

看看jdk中的線程池繼承關系類圖:

在JDK,使用ThreadPoolExecutor創建了幾個具有不同功能的線程池。妳可以把它們關掉看看:

看看有什麽特點:

從上面可以看出,它們各有特點,但是阿裏巴巴開發代碼並不建議使用上述線程池,因為它們可能會浪費服務資源,所以建議使用ThreadPoolExecutor定制的線程池。

Spring用Java封裝了線程池,並提供了默認實現,也可以自定義線程池。我壹般用Spring的線程池包。

春天的線程池和JDK的基本壹樣,在org的包裝下。springframework.scheduling .並發。

對應JDK,Spring的頂層接口是TaskExecutor,實現了JDK的Executor接口。

Spring中常用的線程池是ThreadPoolTaskExecutor,用Java實現。JDK和外包的util.concurrent.threadpool執行程序。

要使用線程池,首先要了解線程池中的壹些參數:

因為我們常用ThreadPoolExecutor線程池,所以去這個類找壹下。

上面配置了線程池,生成了線程池bean,由Spring容器管理,註入時可以使用。

SpringBoot線程池是在org中的jar spring-boot-autoconfigure中自動組裝的。spring framework . boot . auto configure . task . taskexecutionautoconfiguration類。

自動裝配條件:

當壹個新任務提交到線程池時,線程池的主要流程如下:

核心線程的數量-->;線程隊列-->;最大線程數-->;拒絕策略

因此,在使用線程池時,有必要註意:

  • 上一篇:為什麽需要計算機語言?高級語言有哪些特點?
  • 下一篇:spark工作原理和介紹
  • copyright 2024編程學習大全網