zoukankan      html  css  js  c++  java
  • java threadpool 线程池核心参数

     /**
             * corePoolSize 保留在池中的线程数 即使处于空闲状态 除非设置了allowCoreThreadTimeOut
             *
             * maximumPoolSize *池中允许的最大线程数
             *
             * keepalivueTime 存活时间 如果当前线程大于core的数量
             *          释放空闲的线程 maximumPoolsize-corePoolSize 只要线程空闲大于指定的keepAlivuetime
             * unit:时间单位
             * BlockingQUeue<Runnable> workQueue 阻塞队列 如果任务有很多 就会将目前多的任务放在队列里面
             *      只要有线程空闲,就会去队列里面取出新的任务继续执行
             * threadFactory 线程创建工厂
             * RejectedExecutionHandler 如果队列满了 按照我们指定得拒绝策略拒绝指定任务
             *
             * 工作顺序
             * 1)、线程池创建好 准备好core数量的核心线程,准备接受任务
             * 1.1、core满了 就将在进来的任务放入阻塞队列中 空闲的core就会自己去阻塞队列获取任务执行
             * 1.2、阻塞队列满了 就直接开新线程执行 最大只能开到max指定数量
             * 1.3、max满了就用RejectedExecutionHandler 拒绝任务
             * 1.4、max都执行完成,有很多空闲 指定时间以后keepAlivueTime以后 释放max-core(195)这些线程
             *
             *       new LinkedBlockingQueue<>() 默认是Integer最大值 内存不够
             *
             *       一个线程池 core:7 max:20 queue:50 100并发进来怎么分配
             *       7个会立即得到执行 50个进入队列 再开13个进行执行,剩下的30个就使用拒绝策略
             *       如果不想抛弃还要执行 CallerRunsPolicy 同步方式
             */
            //最原始的方式:
            ThreadPoolExecutor executor = new ThreadPoolExecutor(5,
                    200,
                    10, TimeUnit.SECONDS,
                    new LinkedBlockingDeque<>(100000),
                    Executors.defaultThreadFactory(),
                    new ThreadPoolExecutor.AbortPolicy());
    
    
            //快速创建线程池
              Executors.newCachedThreadPool(); //core是0 所有都可回收
              Executors.newFixedThreadPool(10);//固定大小 core=max 都不可以回收
              Executors.newScheduledThreadPool(10); //定时任务的线程池
              Executors.newSingleThreadExecutor(); //单线程的线程池,后台从队列里面获取任务 挨个执行
  • 相关阅读:
    用word2010发个blog
    停止调试无法关闭控制台
    D11.5.8,Lingo中不支持AS3的ExternalInterface接口
    Lingo03 通用脚本和自定义handler
    Lingo01 术语
    Lingo09 Sprite
    Lingo动态创建script member
    tut11脚本基础
    诡异失败的导入对话框
    Lingo3D01 3D Cast Member的组成
  • 原文地址:https://www.cnblogs.com/xiaodu9499/p/14807717.html
Copyright © 2011-2022 走看看