zoukankan      html  css  js  c++  java
  • spring 开启@EnableAsync

    @Configuration
    //开启异步任务的支持
    @EnableAsync
    public class TaskExecutorConfig {
    
        @Bean(name = "businessEventProcessTaskExecutor", destroyMethod = "destroy")
        public ThreadPoolTaskExecutor getAsyncExecutor() {
            ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
            // 获取JAVA虚拟机的可用处理器数量。IO密集型建议核心线程数是该值2倍;计算密集型建议核心线程数是该值1倍
            int processorNum = Runtime.getRuntime().availableProcessors();
            // 设置核心线程数量。若池中的实际线程数小于该值,无论其中是否有空闲的线程,都会产生新的线程
            executor.setCorePoolSize(processorNum * 2);
            // 设置最大线程数量
            executor.setMaxPoolSize(processorNum * 4);
            // 设置阻塞任务队列大小
            executor.setQueueCapacity(100);
            // 线程名称前缀
            executor.setThreadNamePrefix("ThreadNamePrefix-");
            // 设置线程池中任务的等待时间,若超过等待时间仍未销毁则强制销毁,以确保应用最后能够被关闭,而不是阻塞住
            executor.setAwaitTerminationSeconds(1);
            // 设置拒绝策略,当线程池阻塞队列已满时对新任务的处理。调节机制,即饱和时回退主线程执行
            executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
            executor.initialize();
            return executor;
        }
    }
  • 相关阅读:
    Intellij 常用技巧-持续更新
    Android界面组件的四种启动方式
    Preference Screen 首选项
    Oracle OCI-22053:溢出错误
    SQLPLUS使用
    Oracle中数字格式的文本化处理
    MP4V2 移植 (基于imx6 平台)
    IMX6Q camera 应用编程之 摄像头裁剪
    IMX6Q camera驱动分析 (4)
    IMX6Q Camera驱动分析 (3)
  • 原文地址:https://www.cnblogs.com/huanghuanghui/p/12932012.html
Copyright © 2011-2022 走看看