亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

詳解Springboot對多線程的支持

2024-07-14 08:41:50
字體:
來源:轉載
供稿:網友

這兩天看阿里的JAVA開發手冊,到多線程的時候說永遠不要用 new Thread()這種方式來使用多線程。確實是這樣的,我一直在用線程池,到了springboot才發現他已經給我們提供了很方便的線程池機制。

本博客代碼托管在github上https://github.com/gxz0422042...

一、介紹

Spring是通過任務執行器(TaskExecutor)來實現多線程和并發編程,使用ThreadPoolTaskExecutor來創建一個基于線城池的TaskExecutor。在使用線程池的大多數情況下都是異步非阻塞的。我們配置注解@EnableAsync可以開啟異步任務。然后在實際執行的方法上配置注解@Async上聲明是異步任務。

二、配置類

配置類代碼如下:

package com.spartajet.springbootlearn.thread;import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.AsyncConfigurer;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.Executor;/** * @description * @create 2017-02-22 下午11:53 * @email gxz04220427@163.com */@Configuration@EnableAsyncpublic class ThreadConfig implements AsyncConfigurer {  /**   * The {@link Executor} instance to be used when processing async   * method invocations.   */  @Override  public Executor getAsyncExecutor() {    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();    executor.setCorePoolSize(5);    executor.setMaxPoolSize(15);    executor.setQueueCapacity(25);    executor.initialize();    return executor;  }  /**   * The {@link AsyncUncaughtExceptionHandler} instance to be used   * when an exception is thrown during an asynchronous method execution   * with {@code void} return type.   */  @Override  public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {    return null;  }}

解讀:

利用EnableAsync來開啟Springboot對于異步任務的支持

配置類實現接口AsyncConfigurator,返回一個ThreadPoolTaskExecutor線程池對象。

三、任務執行

任務執行代碼:

package com.spartajet.springbootlearn.thread;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;/** * @description * @create 2017-02-23 上午12:00 * @email gxz04220427@163.com */@Servicepublic class AsyncTaskService {  @Async  public void executeAsyncTask(int i) {    System.out.println("線程" + Thread.currentThread().getName() + " 執行異步任務:" + i);  }}

代碼解讀:

通過@Async注解表明該方法是異步方法,如果注解在類上,那表明這個類里面的所有方法都是異步的。

四、測試代碼

package com.spartajet.springbootlearn;import com.spartajet.springbootlearn.thread.AsyncTaskService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;@RunWith (SpringRunner.class)@SpringBootTestpublic class SpringbootLearnApplicationTests {  @Autowired  private AsyncTaskService asyncTaskService;  @Test  public void contextLoads() {  }  @Test  public void threadTest() {    for (int i = 0; i < 20; i++) {      asyncTaskService.executeAsyncTask(i);    }  }}

測試結果:

線程ThreadPoolTaskExecutor-4 執行異步任務:3
線程ThreadPoolTaskExecutor-2 執行異步任務:1
線程ThreadPoolTaskExecutor-1 執行異步任務:0
線程ThreadPoolTaskExecutor-1 執行異步任務:7
線程ThreadPoolTaskExecutor-1 執行異步任務:8
線程ThreadPoolTaskExecutor-1 執行異步任務:9
線程ThreadPoolTaskExecutor-1 執行異步任務:10
線程ThreadPoolTaskExecutor-5 執行異步任務:4
線程ThreadPoolTaskExecutor-3 執行異步任務:2
線程ThreadPoolTaskExecutor-5 執行異步任務:12
線程ThreadPoolTaskExecutor-1 執行異步任務:11
線程ThreadPoolTaskExecutor-2 執行異步任務:6
線程ThreadPoolTaskExecutor-4 執行異步任務:5
線程ThreadPoolTaskExecutor-2 執行異步任務:16
線程ThreadPoolTaskExecutor-1 執行異步任務:15
線程ThreadPoolTaskExecutor-5 執行異步任務:14
線程ThreadPoolTaskExecutor-3 執行異步任務:13
線程ThreadPoolTaskExecutor-1 執行異步任務:19
線程ThreadPoolTaskExecutor-2 執行異步任務:18
線程ThreadPoolTaskExecutor-4 執行異步任務:17

總結

以上所述是小編給大家介紹的Springboot對多線程的支持,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品亚洲精品| 亚洲成人黄色网址| 欧美不卡视频一区发布| 久久久久久国产精品三级玉女聊斋| 亚洲黄在线观看| 一本大道香蕉久在线播放29| 欧美日韩福利电影| 国产日韩在线一区| 亚洲精品黄网在线观看| 亚洲成av人乱码色午夜| 国产成人精品久久久| 中文字幕欧美亚洲| 精品爽片免费看久久| 日韩在线观看免费全| 久久久久久久影视| 欧美三级免费观看| 九九热精品视频国产| 亚洲午夜av电影| 欧美在线视频免费播放| 黑人巨大精品欧美一区二区免费| 欧洲美女7788成人免费视频| 在线看国产精品| 国产精品美腿一区在线看| 在线观看日韩www视频免费| 日韩高清有码在线| 一本大道久久加勒比香蕉| 亚洲品质视频自拍网| 亚洲精品按摩视频| 日韩在线视频线视频免费网站| 久久99精品视频一区97| 爽爽爽爽爽爽爽成人免费观看| 91免费国产视频| 成人午夜小视频| 在线视频中文亚洲| 精品国产999| 中文字幕日韩欧美在线视频| 久久久久久久一区二区| 日本欧美一二三区| 欧美剧在线观看| 欧美日韩亚洲国产一区| 亚洲久久久久久久久久久| 欧美国产精品日韩| 国内精品视频一区| 中文字幕欧美日韩精品| 日韩av免费在线| 亚洲精品美女视频| 日韩国产激情在线| 欧美成人精品三级在线观看| 欧美理论电影在线观看| 色樱桃影院亚洲精品影院| 91免费电影网站| 欧美激情一区二区三区在线视频观看| 6080yy精品一区二区三区| 亚洲二区在线播放视频| 亚洲欧美视频在线| 亚洲欧美变态国产另类| 久久久久久久久久久免费精品| 国产视频精品在线| 国产精品久久久久久av福利| 91久久精品国产91性色| 国产精品女主播| 日韩电影第一页| 91在线中文字幕| 91豆花精品一区| 日本精品久久久久影院| 亚洲第一中文字幕在线观看| 欧美日韩国产激情| 成人福利视频在线观看| 亚洲摸下面视频| 午夜精品三级视频福利| 成人激情春色网| 欧美在线观看日本一区| 欧美一区二区大胆人体摄影专业网站| 韩日精品中文字幕| 国产精品久久久久一区二区| 国产精品精品视频| 欧美成人精品一区| 亚洲自拍小视频| 亚洲成人av中文字幕| 日本欧美中文字幕| 亚洲视频自拍偷拍| 亚洲一区二区三区sesese| 日韩一级裸体免费视频| 国产精品扒开腿爽爽爽视频| 国产精品久久999| 国产女人精品视频| 一区二区亚洲精品国产| 日韩免费在线看| 欧美亚洲免费电影| 日韩在线欧美在线| 亚洲xxx自由成熟| 成人啪啪免费看| 日韩在线视频中文字幕| 国产美女扒开尿口久久久| 在线成人激情视频| 亚洲性xxxx| 日韩精品视频在线观看网址| 国产乱人伦真实精品视频| 久久亚洲精品毛片| 激情久久av一区av二区av三区| 亚洲综合中文字幕在线| 91视频88av| 最近中文字幕mv在线一区二区三区四区| 欧美视频在线看| 欧美成人免费va影院高清| 精品电影在线观看| 午夜精品久久久久久久99热浪潮| 亚洲免费av片| 中文字幕亚洲国产| 欧美日韩免费区域视频在线观看| 日韩av一区二区在线观看| 久久精品中文字幕电影| 日韩美女免费视频| 国产精品欧美日韩一区二区| 精品夜色国产国偷在线| 欧美一级免费看| 91精品久久久久久久久| 日韩亚洲精品视频| 欧美丝袜一区二区三区| 日韩亚洲国产中文字幕| 91亚洲精品久久久久久久久久久久| 日韩在线免费av| 姬川优奈aav一区二区| 久久国产精品久久久久久久久久| 成人亚洲综合色就1024| 亚洲色图欧美制服丝袜另类第一页| 91精品久久久久久久久不口人| 亚洲九九九在线观看| 国产精品国产三级国产aⅴ9色| 最近2019年日本中文免费字幕| 亚洲最新av在线网站| 欧美日韩亚洲网| 国产成人jvid在线播放| 亚洲第一精品自拍| 成人国产精品一区| 日韩一区视频在线| 久久91精品国产91久久久| 精品福利视频导航| 国产精品视频男人的天堂| 日韩亚洲在线观看| 欧美性猛交xxxx免费看漫画| 欧美大片免费观看在线观看网站推荐| 亚洲一级一级97网| 亚洲欧美日韩精品| 欧美疯狂做受xxxx高潮| 国产视频在线观看一区二区| 国产精品欧美一区二区| 国产不卡一区二区在线播放| 久久久久久12| 中文字幕自拍vr一区二区三区| 精品高清美女精品国产区| 亚洲一区二区三区香蕉| 亚洲欧美一区二区三区情侣bbw| 亚洲精品久久久久久久久| 国产精品久久久久高潮| 色综合久久悠悠| 欧美性xxxx极品hd满灌| 欧美激情视频网站| 欧美成人一区二区三区电影| 色视频www在线播放国产成人| 国产精品久久一| 久久精品99无色码中文字幕| 97国产在线视频| 美女久久久久久久久久久|