zoukankan      html  css  js  c++  java
  • 线程池都有哪些核心配置参数?

    corePoolSize

    表示常驻核心线程数量。

    maximumPoolSize

    表示线程池中能同时执行的最大线程数量。这个值必须大于等于corePoolSize,如果这两个值相等,那就是固定大小的线程池

    keepAliveTime

    表示线程池中除常驻核心线程之外的其他线程的空闲时间,如果超过这个时间就会销毁。

    queue

    缓存队列,当请求的线程数大于corePoolSize的时候,线程会进入队列进行阻塞。当这个队列达到上限之后,线程池会创建新的线程,直到到吗maximumPoolSize大小位置。

    RejectedExecutionHandler

    表示拒绝策略。当queue满了之后,并行活动的线程数大于maximunPoolSize的时候,线程池通过改策略处理请求。

    其中RejectedExcutionHandler默认包含四种策略:

    AbortPolicy(默认) 丢弃这个任务并抛出 RejectedExecutionException异常
    DiscardPolicy 丢弃掉这个任务,但是不抛出异常
    DiscardOldestPolicy 抛弃掉在队列中等待最久的任务,然后把当前任务加入队列中
    CallerRunsPolicy 调用任务的run()方法绕过线程池直接执行

    另外还支持自定义模式。

    public class UserRejectedHandler implements RejectedExecutionHandler {
        @Override
        public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
            System.out.println("处理逻辑");
        }
    }
    

    threadFactory

    表示线程工厂。他用来生产一组相同任务的线程。

  • 相关阅读:
    setup-nginx
    Sql Server
    第一次找工作
    JGroups 初探
    游戏与彩票
    MINA 网络黏包处理代码
    powershell遍历文件夹设置权限,解决文件无法删除的问题。
    c# 异步任务队列(可选是否使用单线程执行任务,以及自动取消任务)
    c#注册表对象映射
    最小安装centos 7 无GUI静默安装 oracle 12c,打造轻量linux化服务器
  • 原文地址:https://www.cnblogs.com/joimages/p/12066657.html
Copyright © 2011-2022 走看看