wordpress照片管理系统宁波如何做抖音seo搜索优化
news/
2025/9/29 23:30:14/
文章来源:
wordpress照片管理系统,宁波如何做抖音seo搜索优化,运城seo招聘,军事热点最新情况线程池 构造函数处理过程拒绝策略JDK 内置的拒绝策略 Executors类实现线程池线程池大小设置 通过复用已创建的线程#xff0c;降低资源损耗、线程可以直接处理队列中的任务加快响应速度、同时便于统一监控和管理。
构造函数 /*** 线程池构造函数7大参数*/
public ThreadPoolE… 线程池 构造函数处理过程拒绝策略JDK 内置的拒绝策略 Executors类实现线程池线程池大小设置 通过复用已创建的线程降低资源损耗、线程可以直接处理队列中的任务加快响应速度、同时便于统一监控和管理。
构造函数 /*** 线程池构造函数7大参数*/
public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueueRunnable workQueue,ThreadFactory threadFactory, RejectedExecutionHandler handler) {}参数介绍
参数作用corePoolSize核心线程池大小maximumPoolSize最大线程池大小keepAliveTime线程池中超过 corePoolSize 数目的空闲线程最大存活时间TimeUnitkeepAliveTime 时间单位workQueue阻塞任务队列threadFactory新建线程工厂RejectedExecutionHandler拒绝策略。当提交任务数超过 maxmumPoolSizeworkQueue 之和时任务会交给RejectedExecutionHandler来处理
处理过程
线程处理任务过程
当线程池小于corePoolSize新提交任务将创建一个新线程执行任务即使此时线程池中存在空闲线程。当线程池达到corePoolSize时新提交任务将被放入 workQueue 中等待线程池中任务调度执行。当workQueue已满且 maximumPoolSize 大于 corePoolSize 时新提交任务会创建新线程执行任务。当提交任务数超过 maximumPoolSize 时新提交任务由 RejectedExecutionHandler 处理。当线程池中超过corePoolSize 线程空闲时间达到 keepAliveTime 时关闭空闲线程 。
拒绝策略
线程池中的线程已经用完了无法继续为新任务服务同时等待队列也已经排满了再也塞不下新任务了。这时候我们就需要拒绝策略机制合理的处理这个问题。
JDK 内置的拒绝策略
AbortPolicy直接抛出异常阻止系统正常运行。可以根据业务逻辑选择重试或者放弃提交等策略。CallerRunsPolicy 只要线程池未关闭该策略直接在调用者线程中运行当前被丢弃的任务。不会造成任务丢失同时减缓提交任务的速度给执行任务缓冲时间。DiscardOldestPolicy 丢弃最老的一个请求也就是即将被执行的任务并尝试再次提交当前任务。DiscardPolicy 该策略默默地丢弃无法处理的任务不予任何处理。如果允许任务丢失这是最好的一种方案。
Executors类实现线程池 newSingleThreadExecutor()只有一个线程的线程池任务是顺序执行适用于一个一个任务执行的场景newCachedThreadPool()线程池里有很多线程需要同时执行60s内复用适用执行很多短期异步的小程序或者负载较轻的服务newFixedThreadPool()拥有固定线程数的线程池如果没有任务执行那么线程会一直等待适用执行长期的任务。newScheduledThreadPool()用来调度即将执行的任务的线程池newWorkStealingPool()底层采用forkjoin的Deque采用独立的任务队列可以减少竞争同时加快任务处理 各方式都存在缺点 FixedThreadPool 和 SingleThreadExecutor 允许请求的队列⻓度为 Integer.MAX_VALUE会导致OOM。 CachedThreadPool 和 ScheduledThreadPool 允许创建的线程数量为 Integer.MAX_VALUE会导致OOM。 手动创建的线程池底层使用的是ArrayBlockingQueue可以防止OOM。
线程池大小设置
CPU 密集型n1 CPU 密集的意思是该任务需要大量的运算而没有阻塞CPU 一直全速运行。 CPU 密集型任务尽可能的少的线程数量一般为 CPU 核数 1 个线程的线程池。IO 密集型2*n 由于 IO 密集型任务线程并不是一直在执行任务可以多分配一点线程数如 CPU x 2 也可以使用公式CPU 核心数 x1平均等待时间/平均工作时间。
原文https://mp.weixin.qq.com/s/IVgGXQKU1QiT1ToN2wXHJg
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922340.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!