进程池实战讲解+完整内容

原创
小哥 3年前 (2022-11-09) 阅读数 5 #大杂烩

本文描述了如何在实际项目中创建和配置线程池,下一个异步编排是基于本章中创建的线程池的购物站点的多线程应用程序。

1,首先创建一个线程池。ThreadPoolConfigProperties文件,快来properties或者是yml文件中的属性必须是可配置的。

package com.xxx.mall.cart.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author guanghaocheng
 * @version 1.0
 * 翅膀被灰尘和雾气稍稍补充。,蜡烛末端的光线增加了太阳和月亮的辉光。
 * @date 2021/6/24 20:25
 */
@ConfigurationProperties(prefix = "mall.thread")
@Component
@Data
public class ThreadPoolConfigProperties {
    private Integer coreSize;
    private Integer maxSize;
    private Integer keepAliveTime;
}

2、编写properties或xml相应的属性。

#自定义线程池设置
mall:
  thread:
    core-size: 20
    max-size: 200
    keep-alive-time: 10

3,写入线程池配置类

package com.xxx.mall.cart.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @author guanghaocheng
 * @version 1.0
 * 翅膀被灰尘和雾气稍稍补充。,蜡烛末端的光线增加了太阳和月亮的辉光。
 * @date 2021/6/24 20:14
 */
@Configuration
public class MyThreadConfig {
    @Bean
    public ThreadPoolExecutor threadPoolExecutor(ThreadPoolConfigProperties threadPoolConfigProperties){
        //创建线程池,7大参数:核心线程数(始终存在的线程数、最大线程数、线程等待时间、时间单位、阻塞队列长度、默认线程工厂、拒绝策略(丢弃))
        return new ThreadPoolExecutor(threadPoolConfigProperties.getCoreSize(),threadPoolConfigProperties.getMaxSize(),threadPoolConfigProperties.getKeepAliveTime(),
                TimeUnit.SECONDS,new LinkedBlockingDeque<>(10000),
                Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());
    }
}

此后,线程池的创建和配置已经完成,可以直接使用。

如何使用它:只需注入我们配置的线程池,如下所示:

    @Autowired
    ThreadPoolExecutor executor;

下一个多线程异步编排,在购物网站中构建产品详细信息,使用本章中的线程池。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除