zoukankan      html  css  js  c++  java
  • 线程池-java高并发编程详解第八章记录

    /**
     * 一个完整的线程池应该具备如下要素:
     * 1、任务队列:用于缓存提交的任务。
     * 2、线程数量管理功能:一个线程池必须能够很好的管理和控制线程数量,线程初始数量init,
     *    线程池自动扩充是的最大线程数量max,在空闲时需要释放线程但是也要维护一定数量的活跃数量
     *    或者核心数量core。init <= core <= max;
     * 3、任务拒绝策略:线程数量已达到上限且任务队列已满,则需要有相应的拒绝策略来通知任务提交者
     * 4、线程工厂:主要用于个性化定制线程,比如将线程设置为守护线程以及设置线程名称等。
     * 5、QueueSize:任务队列主要存放提交的Runnable,但是为了防止内存溢出,需要有limit数量对其
     *    进行控制。
     * 6、Keepedalive时间:该时间主要决定线程各个重要参数自动维护的时间间隔。
     */
    public interface ThreadPool {
    
        /**
         * 提交任务到线程池
         */
        void execute(Runnable runnable);
    
        /**
         * 关闭线程池
         */
        void shutdown();
    
        /**
         * 获取线程池的初始化大小
         * @return int
         */
        int getInitSize();
    
        /**
         * 获取线程池最大的线程数
         * @return int
         */
        int getMaxSize();
    
        /**
         * 获取线程池的核心线程数量
         * @return int
         */
        int getCoreSize();
    
        /**
         * 获取线程池中用于缓存任务队列的大小
         */
        int getQueueSize();
    
        /**
         * 获取线程池中活跃的线程的数量
         */
        int getActiveCount();
    
        /**
         * 查看线程池是否已经被shutdown
         */
        boolean isShutdown();
    }

     

  • 相关阅读:
    ffmpeg mp4 视频输出为 aac 的命令
    git操作远程分支
    Linux (openSUSE 15.3 ) server ssh 可以使用,sftp无法使用
    小小思考题
    Linux 命令介绍
    2021 年 如何使用VMware 安装 ubuntu 7.04 虚拟机, 配置 apt 源
    Linux 下 命令行 使用浏览器
    oracle.cmd
    Sqlcmd
    vue eslint 配置使用
  • 原文地址:https://www.cnblogs.com/lhh666/p/12858657.html
Copyright © 2011-2022 走看看