springboot启动时候开启异步线程或者启动方法

springboot启动时候开启异步线程或者启动方法

一、准备工作

在Application类上加上EnableAsync注解开启异步

在被调用的方法上面加上@Async,也可以直接在类上加此注解,会标识所有方法为异步方法

*注意事项*

  1. 必须要加@EnableAsync注解

  2. 不能在同一类下调用@Async注解的方法,比如A类下有a和b方法,b方法有@Async注解,不能直接这样a调用b,要把b放到其他类中

  3. @Async也可以打在类上,这样类下面的所有方法都是异步的(被其他类调用的时候)

    二、另一种注解

要实现在启动时加载此异步方法,加@PostConstruct注解即可

@Component
public class DataProcessController implements Runnable{

	@Value("${params}")
	private String params;

	@Autowired
	private MongoTemplate mongoTemplate;
	
	@PostConstruct
	public void init(){
		//启动线程实例
		new Thread(this).start();
	}
	
	@Override
	public void run() {
		synchronized(this){
			while (true){
				try {
					if(linkedBlockingQueue.isEmpty()){
						try {
							Thread.sleep(100);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					}else{
						executeTask();
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public void executeTask(){
		//具体业务
	}}
引用\[1\]:在Spring Boot中实现多线程异步可以通过使用注解来实现。首先,在启动类上加上注解@EnableAsync,这样就开启异步功能。然后,在想要异步执行的方法上加上注解@Async,表示该方法异步的。最后,在主函数中调用该方法即可实现异步执行。Spring Boot真的很方便,只需要这两个注解就可以完成异步操作。\[1\] 引用\[2\]:另外,可以通过设置corePoolSize来控制线程池的大小,从而实现更好的线程管理。例如,将corePoolSize设置为10,重启Spring Boot后,可以使用Jmeter同时调用接口多次,观察控制台日志可以看到多个线程同时执行,这样可以提高程序的运行效率。\[2\] 总结起来,Spring Boot实现多线程异步的步骤如下: 1. 在启动类上加上注解@EnableAsync,开启异步功能。 2. 在想要异步执行的方法上加上注解@Async,表示该方法异步的。 3. 在主函数中调用该方法即可实现异步执行。 4. 可以通过设置corePoolSize来控制线程池的大小,以优化线程管理。\[1\]\[2\] #### 引用[.reference_title] - *1* [springboot实现线程异步](https://blog.csdn.net/qq_38403590/article/details/119729294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Springboot异步线程编程](https://blog.csdn.net/baidu_28340727/article/details/122310314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值