十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创建:
新城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。一般情况下创建线程池的方法是ThreadPoolExecutor pool = new ThreadPoolExecutor();
或者使用ExecutorService executorService = new ThreadPoolExecutor();
参数解释:
1. corePoolSize:[5] 核心线程数[一直存在除非 (allowCoreThreadTime0ut) ]; 线程池,创建好以后就准备就绪的线程数量,就等待来接受异步务去执行
2. maximumPoolsize:[200] 大线程数量; 控制资源
3.keepAliveTime:存活时间。如果当前的线程数量大于core数量。并且线程空闲大于指定的keepAliveTime就释放; 释放空闲的线程数量为(maximumPoolSize-corePoolSize) 。
4.unit;时间单位
5.Blockingqueue
6.threadFactory:线程的创建工厂
7.RejectedExecutionHandler handler:如果队列满了,按照我们指定的拒绝策略拒绝执行任务
线程池的工作顺序:
1)、线程池创建,准备好core数量的核心线程,准备接受任务
1.1、core满了,就将再进来的任务放入阻塞队列中。空闲的core就会自己去阳塞队列获取任务执行
1.2、阻塞队列满了,就直接开新线程执行,大只能开到max指定的数量
1.3、max满了就用RejectedExecutionHandler拒绝任务
1.4、max都执行完成,有很多空闲,在指定的时间keepALiveTime以后,释放max-core这些线程
拒绝策略有哪些:
DiscardOldstPolicy丢弃最老的任务
CallerRunsPolicy 只用调用者所在的线程来运行任务
DiscardPolicy 丢弃最新的任务(不会抛出异常)
AbortPolicy丢弃最新的任务(会抛出异常)
Executor框架下的常见线程池简介:
FixedThreadPool 创建固定线程数量的线程池
SingleThreadExcutor 创建使用单个线程的线程池
CachedThreadPool 创建一个会根据需要创建新线程的线程池
ScheduledThreadPoolExecutor 创建一个在给定的延迟之后运行任务,或者定期执行任务的线程池
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧