Springboot 并发执行多任务

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

  1. 定义一个 Task 类,实现 Runnable 接口,用于表示一个任务。例如:
public class Task implements Runnable {
    private int id;

    public Task(int id) {
        this.id = id;
    }

    @Override
    public void run() {
        System.out.println("Task " + id + " is running at " + new Date());
    }
}

 

  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 时,就会并发地执行两个任务。线程池会自动管理线程的数量、任务队列和线程的生命周期。如果需要执行更多任务,只需添加更多的任务到线程池中即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值