2018-03-27 Java线程池设置问题

线程池优点:1.降低资源消耗:创建线程和销毁线程都会消耗资源 2.提高相应速度 3.提升线程可管理性

ThreadPoolExecutor:主要参数有corePoolSize、maximumPoolSize、keepAliveTime、workQueue、饱和策略等等这些参数 corePoolSize:核心池大小:默认情况下线程池中没有线程,有任务到来之后,创建一个线程执行。

workQueue:缓存队列。当线程池中线程数量达到corePoolSize之后,会把之后的任务先放进workQueue中。

maximumPoolSize:线程池最大线程数量:当工作队列也装满之后,为新来的任务继续创建线程执行。

keepAliveTime: 当线程池中线程数大于corePoolSize时,如果一个线程空闲的时间达到keepAliveTime时,会终止。 直到线程数量不大于corePoolSize。

饱和策略:当队列和线程池都满了,对于新任务的策略。默认是AbortPolicy。 AbortPolicy:丢弃任务并抛出RejectedExecutionException。 DiscardPolicy:丢弃任务但是不抛出异常 DiscardOldestPolicy:从队列中抛弃head的一个任务,然后执行这个任务。 。。。。

Written on March 27, 2018