你都理解创建线程池的参数吗?
如果前面6个任务还是没有处理完,这时又同时进来5个任务,问:线程池又会创建几条线程还是不会创建?下面我来解释一下这7个参数的用途:线程池核心线程数量,核心线程不会被回收,即使没有任务执行,也会保持空闲状态。超过corePoolSize之后的“临时线程”的存活时间。当前线程数超过corePoolSize时,新的任务会处在等待状态,并存在workQueue中,BlockingQueue是一个先进先出的阻塞式队列实现,底层实现会涉及Java并发的AQS机制,有关于AQS的相关知识,我会单独写一篇,敬请期待。线程池执行拒绝策略,当线数量达到maximumPoolSize大小,并且workQueue也已经塞满了任务的情况下,线程池会调用handler拒绝策略来处理请求。
用户评论