spring-boot 多線程




  1 //配置類
  2 
  3 package test;
  4 
  5 import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
  6 import org.springframework.context.annotation.ComponentScan;
  7 import org.springframework.context.annotation.Configuration;
  8 import org.springframework.scheduling.annotation.AsyncConfigurer;
  9 import org.springframework.scheduling.annotation.EnableAsync;
 10 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 11 
 12 import java.util.concurrent.Executor;
 13 
 14 @Configuration
 15 @ComponentScan("test")
 16 @EnableAsync
 17 public class TaskExecutorConfig implements AsyncConfigurer{
 18 
 19     @Override
 20     public Executor getAsyncExecutor() {
 21         ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
 22         taskExecutor.setCorePoolSize(5);
 23         taskExecutor.setMaxPoolSize(10);
 24         taskExecutor.setQueueCapacity(25);
 25         taskExecutor.initialize();
 26         return taskExecutor;
 27     }
 28 
 29     @Override
 30     public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
 31         return null;
 32     }
 33 }


  1 //任務執行類
  2 
  3 package test;
  4 
  5 import org.springframework.scheduling.annotation.Async;
  6 import org.springframework.stereotype.Service;
  7 
  8 @Service
  9 public class AsyncTaskService {
 10 
 11     @Async
 12     public void executeAsyncTask(Integer i) {
 13         System.out.println("執行異步任務:" + i);
 14     }
 15 }


  1 //運行
  2 
  3 package test;
  4 
  5 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
  6 
  7 public class Application {
  8 
  9     public static void main(String[] args) {
 10         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskExecutorConfig.class);
 11 
 12         AsyncTaskService asyncTaskService = context.getBean(AsyncTaskService.class);
 13         for (int i = 0; i < 20; i++) {
 14             asyncTaskService.executeAsyncTask(i);
 15         }
 16         context.close();
 17     }
 18 }







本文出自於:hacpai


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM