Spring Boot 建立及使用多執行緒

2021-09-11 03:02:01 字數 2264 閱讀 5883

4. 基於@async返回值的呼叫

refspring是通過任務執行器(taskexecutor)來實現多執行緒和併發程式設計,使用threadpooltaskexecutor來建立乙個基於線城池的taskexecutor。在使用執行緒池的大多數情況下都是非同步非阻塞的。我們配置註解@enableasync可以開啟非同步任務。然後在實際執行的方法上配置註解@async上宣告是非同步任務。

首先使用@enableasync來開啟springboot對於非同步任務的支援

@enableasync

public

class

}配置類實現介面asyncconfigurator,返回乙個threadpooltaskexecutor執行緒池物件。

@configuration

@enableasync

public class asynctaskconfig implements asyncconfigurer

@override

public asyncuncaughtexceptionhandler getasyncuncaughtexceptionhandler()

}

3.1 任務執行

通過@async註解表明該方法是非同步方法,如果註解在類上,那表明這個類裡面的所有方法都是非同步的。

@service

public class asynctaskservice

}

3.2 測試**
@runwith (springrunner.class)

@springboottest

@autowired

private asynctaskservice asynctaskservice;

@test

public void contextloads()

@test

public void threadtest() }}

測試結果

執行緒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

通過future來接受非同步方法的處理結果

@async

public futuresubbyasync() throws exception

返回的資料型別為future型別,實為乙個介面,具體的結果型別為asyncresult

// 呼叫非同步方法

futuretask = arithmeticservice.subbyasync();

// 接受非同步方法結果

while (true)

}

Spring Boot定時器建立及使用解析

建立定時器 因為專案需要定時在後端執行任務重新整理資料,不需要從前端呼叫介面,所以需要使用定時器。基於註解方式 scheduled預設為單執行緒。12 3456 78910 1112 1314 1516 1718 1920 2122 23package com.ruanshuai.demo.util...

使用idea建立spring boot 專案

一 通過官網建立新專案 1 進入spring boot的官網 2 點選上圖紅框內容 3 選擇對應的版本和語言及其其他設定 5 解壓 6 開啟idea匯入專案檔案 二 通過idea腳手架工具建立專案 3 專案包名的相關配置 4 新增啟動器 5 選擇專案路徑 完成 三 通過idea的m en建立專案 2...

spring boot日誌配置及使用

今天我們就來說說spring boot的日誌使用 1 日誌的輸出格式 d表示日期時間,thread表示執行緒名,5level 級別從左顯示5個字元寬度 logger 表示logger名字最長50個字元,否則按照句點分割。msg 日誌訊息,n是換行符 舉例 d thread 5level logger...