zoukankan      html  css  js  c++  java
  • ThreadPoolUtil

    package com.box.common.core.thread;

    import java.util.Collection;
    import java.util.List;
    import java.util.concurrent.*;

    /**
    * 线程池工具类
    */
    public class ThreadPoolUtil {

    /** 工具类,构造方法私有化 */
    private ThreadPoolUtil() {
    super();
    }

    // 线程池核心线程数
    private final static Integer COREPOOLSIZE = 5;
    // 最大线程数
    private final static Integer MAXIMUMPOOLSIZE = 10;
    // 空闲线程存活时间
    private final static Integer KEEPALIVETIME = 180;
    // 线程等待队列
    private static BlockingQueue<Runnable> queue = new ArrayBlockingQueue<>(10);
    // 线程池对象
    private static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(COREPOOLSIZE, MAXIMUMPOOLSIZE,
    KEEPALIVETIME, TimeUnit.SECONDS, queue, new ThreadPoolExecutor.AbortPolicy());

    /**
    * 向线程池提交一个任务,返回线程结果
    * @param r
    * @return
    */
    public static Future<?> submit(Callable<?> r) {
    return threadPool.submit(r);
    }

    /**
    * 向线程池提交一个任务,返回线程结果
    * @param rs
    * @return
    */
    public static List<Future<?>> submits(List rs) {
    try {
    List list = threadPool.invokeAll(rs);
    return list;
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    return null;
    }

    /**
    * 向线程池提交一个任务,不关心处理结果
    * @param r
    */
    public static void execute(Runnable r) {
    threadPool.execute(r);
    }

    /** 获取当前线程池线程数量 */
    public static int getSize() {
    return threadPool.getPoolSize();
    }

    /** 获取当前活动的线程数量 */
    public static int getActiveCount() {
    return threadPool.getActiveCount();
    }
    }

    小蚊子大人
  • 相关阅读:
    解决"Windows没有足够信息,不能验证该证书"问题
    IPA 安装
    基于ECharts图表实现的股票K线图表(matols.com)
    WPF Chart
    IdentityServer4 中文文档
    企业信息系统
    手机网站的几点注意
    查询 SQL_Server 所有表的记录数: for xml path
    iframe在ipad safari的显示
    从WEB SERVICE 上返回大数据量的DATASET
  • 原文地址:https://www.cnblogs.com/ywsheng/p/14976128.html
Copyright © 2011-2022 走看看