摘要:
阅读全文
摘要:
当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize时,如果还有任务到来就会采取任务拒绝策略,通常有以下四种策略: AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。 这是线程池默认的拒绝策略,在任务不能再提交的时候,抛出异 阅读全文
摘要:
1 当一个任务通过submit或者execute方法提交到线程池的时候,如果当前池中线程数(包括闲置线程)小于coolPoolSize,则创建一个线程执行该任务。 2 如果当前线程池中线程数已经达到corePoolSize,则将任务放入等待队列。 3 如果任务不能入队,说明等待队列已满,若当前池中线 阅读全文
摘要:
在并发编程中,使用线程池的好处是减少在创建和销毁线程上所花费的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建大量线程而导致消耗完内存或者“过度切换”的问题。 JAVA线程池有几个核心的参数,这几个参数的作用是: corePoolSize:核心线程数,当提交一个新的任 阅读全文
摘要:
常用的JAVA线程池有以下几种类型: 1、newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 这种类型的线程池特点是: 工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 阅读全文