近期 项目中的CPU占用很大,排查原因得知 线程太多导致的,因为代码是这样写的,几乎有10个接口都是这样调用的【threadPool.addTask()】,并且当时是高并发情况下执行的,一段时间之后,还是会导致CPU过高。具体原因尚不清楚,若是有前辈了解的,望指点一二。
由于出现这个问题,我们便修改为使用 基于spring使用的异步。
代码如下:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
/**
* @Auther: xngz
* @Date: 2021/5/6 17:10
* @Description: 多线程 线程池配置
*/
@Configuration
@EnableAsync //利用@EnableAsync注解开启异步任务支持
@ComponentScan("com.bigdata.bigdata.service.async")
public class AsyncConfig {
@Bean
public Executor asyncServiceExecutor() {
ThreadPoolTaskExe