当前位置:   article > 正文

Springboot 并发执行多任务_springboot多线程并发处理

springboot多线程并发处理

如果想要一次性并发执行多个任务,可以使用 Java 并发编程中的线程池来实现。具体步骤如下:

  1. 定义一个 Task 类,实现 Runnable 接口,用于表示一个任务。例如:
  1. public class Task implements Runnable {
  2. private int id;
  3. public Task(int id) {
  4. this.id = id;
  5. }
  6. @Override
  7. public void run() {
  8. System.out.println("Task " + id + " is running at " + new Date());
  9. }
  10. }

 

  1. 在 Spring Boot 应用程序中定义一个 ThreadPoolExecutor 类,该类负责设置和管理线程池,并提供一个 Web URL 接口用于触发任务执行。下面是一个示例代码:

@RestController

public class TaskController {

private static final int MAX_THREADS = 10;

private static final int QUEUE_CAPACITY = 100;

private ThreadPoolExecutor executor = new ThreadPoolExecutor(

MAX_THREADS,

MAX_THREADS,

0L,

TimeUnit.MILLISECONDS,

new LinkedBlockingQueue<>(QUEUE_CAPACITY)

);

@GetMapping("/tasks")

public String triggerTasks() {

// 添加 2 个任务到线程池中

executor.execute(new Task(1));

executor.execute(new Task(2));

return "Tasks are triggered!";

}

}

在上述示例代码中,我们通过 ThreadPoolExecutor 类创建一个最大线程数为 10,任务队列容量为 100 的线程池。当访问 /tasks URL 时,添加两个任务到线程池中。

  1. 在 Spring Boot 应用程序的启动类上添加 @EnableAsync 注解,以启用异步支持。

@SpringBootApplication

@EnableAsync

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

这样,当你访问 http://localhost:8080/tasks 时,就会并发地执行两个任务。线程池会自动管理线程的数量、任务队列和线程的生命周期。如果需要执行更多任务,只需添加更多的任务到线程池中即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52471
推荐阅读
相关标签
  

闽ICP备14008679号