《java并发编程实践》---第8章 应用线程池
2021-04-22 06:27
                         标签:闲置   大于   card   拒绝策略   ror   run   time   mina   read    1、定制线程池的大小     1.1、线程池的合理大小  取决于  未来提交的任务类型  和  所部署的系统特征; 2、配置ThreadPoolExecutor     2.1、ThreadPoolExecutor 提供了 一些基本的Executor的实现:           (由 工具类Executors 提供的newCachedThreadPool、newFixedThreadPool、newSingleThreadExecutor、newSingleThreadScheduledExecutor 返回)     2.2、如果 Executors提供的不能满足需求,可以通过ThreadPoolExecutor定制:         核心线程池大小:           即使没有任务执行,池的大小也等于核心池的大小,直到工作队列充满前,都不会增加新的线程;         最大线程数:           池内同时活动的线程的上限;         线程存活时间:           如果一个线程闲置的时间超过了存活时间,并且 池大小  大于  核心线程大小 ,线程池会终止该线程;         工作队列:           ThreadPoolExecutor提供了BolckingQueue 持有等待执行的任务;           任务队列有3种:无限队列、有限队列、同步移交          拒绝策略:           当任务队列满后,新任务怎么处理?             jdk提供了4种饱和策略:                 AbortPolicy:                   默认策略,抛出RejectedExecutionException异常;                 CallerRunsPolicy:                   既不会抛出异常、也不会丢弃任务,而是 将任务推回,由调用者执行;                 DiscardPolicy:                   丢弃新任务;                 DiscardOldestPolicy:                     丢弃最老的任务 3、扩展ThreadPoolExecutor     3.1、ThreadPoolExecutor提供了几个钩子函数:         beforeExecute()           如果beforeExecute()抛出一个RuntimeException,           任务不会执行,afterExecute()不会执行;         afterExecute()           任务  正常运行、 抛出异常,                     afterExecute()都会执行;           任务  抛出Error,                        afterExecute()不会执行;         terminated()           线程池完成关闭后调用;     3.2、应用:         添加日志、时序、监视器、统计信息等;                   《java并发编程实践》---第8章 应用线程池 标签:闲置   大于   card   拒绝策略   ror   run   time   mina   read    原文地址:https://www.cnblogs.com/anpeiyong/p/13278221.html
上一篇:滑动窗口算法-1