zoukankan      html  css  js  c++  java
  • java线程池的使用

    一、在java中使用线程池的情况:

      1、任务执行时间比较长的时候,前台只需要在执行就可以,不需阻塞等待结果

      2、出现高并发的情况,如果没有线程池的管理,会撑爆内存,需要任务排队执行任务

    二、线程池的使用:

      1、新城池的分类大类有四种,单例,可变,定长,缓存

      2、常用的情况就是热内比较多,而且任务的执行时间比较长的情况,需要排队执行任务,并且核心线程数量一定,排队线程不做限制

      

    import org.springframework.beans.factory.annotation.Value;
    
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.LinkedBlockingQueue;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
    
    public class ThreadPoolManage {
    
        @Value("corePoolSize")
        private static int corePoolSize; //核心线程池数量(运行的最少线程)
        @Value("maxPoolSize")
        private static int maxPoolSize; //最大线程池数量(运行的最大线程)和队列容量无关
    
        private ThreadPoolManage (){}
    
        //单例线程池
        private static final ExecutorService fixedThreadPool = new ThreadPoolExecutor(
                corePoolSize,
                maxPoolSize,
                0L,
                TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue() //新建一个阻塞队列,任务入队等待
        );
    
        public static ExecutorService getFixedThreadPool() {
            return fixedThreadPool;
        }
    }

    三、线程池的使用:

      

    ExecutorService fixedThreadPool = ThreadPoolManager.getFiedThreadPool();
                    fixedThreadPool.execute(
                            new ReportTask(reportTaskParam,collectionLogService,collectionInfoService,
                                    verifyService,odsInboundService));//自定义的实现Runnable接口的任务类

  • 相关阅读:
    jquery在线手册
    bootstrap学习之路
    实用的cmd命令
    在源代码中插入防止盗版代码片段的方式
    常用的正则表达式
    仿站步骤
    thinkphp 公用函数
    php switch判断一个数所在的范围
    ps学习教程
    九度oj 题目1185:特殊排序
  • 原文地址:https://www.cnblogs.com/hackxiyu/p/8760459.html
Copyright © 2011-2022 走看看