springboot配置線程池

直接上代碼

配置

定義一個配置類

創建一個springboot能掃描到的地方創建一個線程池配置類
在這里插入圖片描述

配置信息

package com.example.demonew.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;@Configuration //表明是配置類,springboot會來掃描
public class ThreadPoolConfig {@Bean(name="taskExecutor") //配置bean對象交給springboot容器給我們管理,這時候就相當于創建了一個單例線程池名字為taskExecutorpublic Executor taskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(5);executor.setMaxPoolSize(10);executor.setQueueCapacity(100);executor.initialize();return executor;}@Bean("poolExecutor") //配置第二個線程池public Executor poolExecutor() {ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();//設置線程池參數信息taskExecutor.setCorePoolSize(10);taskExecutor.setMaxPoolSize(50);taskExecutor.setQueueCapacity(200);taskExecutor.setKeepAliveSeconds(60);taskExecutor.setThreadNamePrefix("myExecutor2--");taskExecutor.setWaitForTasksToCompleteOnShutdown(true);taskExecutor.setAwaitTerminationSeconds(60);//修改拒絕策略為使用當前線程執行taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());//初始化線程池taskExecutor.initialize();return taskExecutor;}
}

實現

package com.example.demonew.service;import com.example.demonew.config.ThreadPoolConfig;
import jakarta.annotation.Resource;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;import java.util.concurrent.Executors;@Service
public class TestServiceImpl  implements TestService{@Resource(name = "taskExecutor") //指定注入的bean 可以切換成poolExecutorprivate ThreadPoolTaskExecutor executor;@Overridepublic String test() {ThreadPoolTaskExecutor taskExecutor = executor;// 獲取線程池信息int activeCount = taskExecutor.getActiveCount();int corePoolSize = taskExecutor.getCorePoolSize();int poolSize = taskExecutor.getPoolSize();taskExecutor.execute(()->{System.out.printf(activeCount+"--"+corePoolSize);});return null;}
}

結果

@Resource(name = "taskExecutor") //指定注入的bean 可以切換成poolExecutor
private ThreadPoolTaskExecutor executor;

在這里插入圖片描述

@Resource(name = "poolExecutor")
private ThreadPoolTaskExecutor executor;

在這里插入圖片描述
切換成功

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65248.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65248.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65248.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【君正T31開發記錄】12.編譯工具相關總結及介紹

移植交叉工具包的時候,發現這是很多工具的集合包;以及寫makefile的時候,也需要了解下這些工具的作用及用法,這里總結記錄一下常見的工具及相關用法。 g C編譯器,用于編譯C源代碼文件,這個很常見&#xff0…

如何讓面向應急管理的多智能體具備自主決策能力

現代應急管理面對的是復雜、多變、跨部門的災害與事故場景——從自然災害(洪水、地震、臺風、火災)到公共安全事件(疫情、重大安全事故),都需要在極短時間內進行快速響應和全局協同。傳統的集中式指揮模式雖然有效&…

List-順序表--2

目錄 1、ArrayList 2、ArrayList構造方法 3、ArrayList常見方法 4、ArrayList的遍歷 5、ArrayList的擴容機制 6、ArrayList的具體使用 6.1、楊輝三角 6.2、簡單的洗牌算法 1、ArrayList 在集合框架中,ArrayList 是一個普通的類,實現了 List 接口…

lambda用法及其原理

目錄 lambda形式lambda用法1.sort降序2.swap3.捕捉列表 習題解題 lambda形式 [capture-list](parameters)->return type{function boby}[capture-list]:[捕捉列表]用于捕捉函數外的參數,可以為空,但不能省略;(parameters) &am…

基于ASP.NET的動漫網站

一、系統架構與技術實現 系統架構:基于ASP.NET的MVC框架構建,實現網站的層次結構,使得網站更加易于維護和擴展。 技術實現:利用ASP.NET的技術特點,如強大的后端開發能力、豐富的UI控件等,結合前端技術如HT…

用 HTML5 Canvas 和 JavaScript 實現流星雨特效

最近在研究前端動畫效果時,實現了一個超酷的流星雨特效,今天來和大家分享下具體實現過程。 1,整體實現思路 這個流星雨特效主要由 HTML、CSS 和 JavaScript 協同完成。HTML 搭建基礎結構,CSS 負責頁面樣式設計,JavaScript 實現星星和流星的動態效果。 效果展示: 用 HTM…

AI中的神經元與權重矩陣之間的關系;神經元連接角度看行和列的意義

AI中的神經元與權重矩陣之間的關系 目錄 AI中的神經元與權重矩陣之間的關系神經元連接角度看行和列的意義AI中的神經元概念 在人工智能領域,特別是神經網絡中,神經元是基本的計算單元,它是對生物神經元的一種抽象模擬。就像生物神經元接收來自其他神經元的電信號,經過處理后…

Visual studio code編寫簡單記事本exe筆記

安裝擴展cmake tools c/c c/c Extension pack CMakeLists.txt cmake_minimum_required(VERSION 3.20) project(NotepadApp)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)# Windows specific settings if(WIN32)set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)s…

Linux 35.6 + JetPack v5.1.4之編譯 pytorch升級

Linux 35.6 JetPack v5.1.4之編譯 pytorch升級 1. 源由2. 升級步驟1:獲取二進制版本步驟2:安裝二進制版本步驟3:獲取torchvision步驟4:安裝torchvision步驟5:檢查安裝版本 3. 使用4. 補充4.1 torchvision版本問題4.2 …

計算機網絡--根據IP地址和路由表計算下一跳

一、必備知識 1.無分類地址IPV4地址網絡前綴主機號 2.每個IPV4地址由32位二進制數組成 3. /15這個地址表示網絡前綴有15位,那么主機號32-1517位。 4.地址掩碼(子網掩碼):所對應的網絡前綴為1,主機號為0。 5.計算下…

歐幾里得算法(簡單理解版,非嚴格證明)

歐幾里得算法用于求解兩個整數的最大公約數,又稱為輾轉相除 依據的基本定理: GCD(a,b)GCD(a%b,b) 證明: 對于搞理論的人可能需要會嚴格證明,但是對于我們一般人而言,只要能理解其原理并記住即可,后者實際上…

插入式微型機頂盒來了

快科技1月6日消息,據國家廣播電視總局今日消息,國家廣播電視總局為首款以插入式微型機頂盒品類通過入網檢測的設備頒發了入網認定證書。 這是插入式微型機頂盒批量部署進程中的又一大進展。同時,廣播電視科學研究院依據行業標準建成了插入式…

lamda表達式

提示:文章 文章目錄 前言一、背景在使用lambda的時候,有幾個參數是可以直接省略的: 二、題目問題探究 總結 前言 前期疑問: 本文目標: lamda表達式 一、背景 看c科二的時候有看到lamda表達式,就再次看了…

XXL-RPC v1.8.1 | RPC服務框架

Release Notes 1、【安全】序列化安全性增強,默認開啟package安全空間機制;2、【擴展】序列化擴展性增強,支持自定義序列化package白名單;3、【優化】序列化類型主動檢測,提升問題定位效率;4、【能力】服務…

前端路由layout布局處理以及菜單交互(三)

上篇介紹了前端項目部署以及基本依賴的應用&#xff0c;這次主要對于路由以及布局進行模塊化處理 一、 創建layout模塊 1、新建src/layout/index.vue <template><el-container class"common-layout"><!-- <el-aside class"aside">&l…

Spring Boot(4)使用 IDEA 搭建 Spring Boot+MyBatis 項目全流程實戰

文章目錄 一、?搞個引言二、?開始搭建 Spring Boot 項目吧&#xff01;2.1 啟動 IDEA 并創建新項目2.2 選擇項目依賴2.3 完成項目創建 三、&#x1f4d8;項目結構剖析四、?配置數據庫連接五、? 創建 MyBatis 相關組件5.1 實體類&#xff08;Entity&#xff09;5.2 Mapper 接…

使用wujie搭建微前端應用及踩坑

線上演示地址&#xff1a;wujie-app 源碼地址&#xff1a;https://github.com/Jiang-K-J/micro-app?tabreadme-ov-file &#xff08;如果覺您得有用&#xff0c;請幫忙點個小星星&#xff09; 主應用&#xff1a;vue2webpack 子應用&#xff1a;vue3vite 子應用&#xff1…

【數據可視化-11】全國大學數據可視化分析

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

141.《mac m1安裝mongodb詳細教程》

文章目錄 下載從官網下載安裝包 下載后雙擊解壓出文件夾安裝文件名修改為 mongodb配置data存放位置和日志log的存放位置啟動方式一方式二方式二:輸入mongo報錯以及解決辦法 本人電腦 m2 pro,屬于 arm 架構 下載 官網地址: mongodb官網 怎么查看自己電腦應該下載哪個版本,輸入…