当前位置: 首页 > news >正文

发稿服务洛阳网站seo

发稿服务,洛阳网站seo,如何做app网站,大连装修公司排名前十名我遇到了Java 6的ThreadPoolExecutor一个奇怪的问题 . 我不时地动态更改了corePoolSize#xff0c;我观察到线程池没有处理应该完成的任务 .例如#xff0c;如果我有4个corePoolSize并且队列中有许多任务等待#xff0c;那么执行程序最多处理3个#xff0c;有时甚至是2个 .…我遇到了Java 6的ThreadPoolExecutor一个奇怪的问题 . 我不时地动态更改了corePoolSize我观察到线程池没有处理应该完成的任务 .例如如果我有4个corePoolSize并且队列中有许多任务等待那么执行程序最多处理3个有时甚至是2个 .在调查问题的时候我注意到当我增加或减少corePoolSize时我从未改变过maxPoolSize . 从我的申请开始它一直是1 .从来没有在Java的文档中找到一个声明提到maxPoolSize的效果小于核心 .然后当我检查源代码时我注意到在costructor和setCorePoolSize方法中它会检查maximumPoolSize小于corePoolSize的位置如果是这样则抛出illegalArgumentException . 看看下面的代码 .构造函数public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {if (corePoolSize 0 ||maximumPoolSize 0 ||maximumPoolSize corePoolSize ||keepAliveTime 0)throw new IllegalArgumentException();if (workQueue null || threadFactory null || handler null)throw new NullPointerException();this.corePoolSize corePoolSize;this.maximumPoolSize maximumPoolSize;this.workQueue workQueue;this.keepAliveTime unit.toNanos(keepAliveTime);this.threadFactory threadFactory;this.handler handler;}设置最大池大小public void setMaximumPoolSize(int maximumPoolSize) {if (maximumPoolSize 0 || maximumPoolSize corePoolSize)throw new IllegalArgumentException();final ReentrantLock mainLock this.mainLock;mainLock.lock();try {int extra this.maximumPoolSize - maximumPoolSize;this.maximumPoolSize maximumPoolSize;if (extra 0 poolSize maximumPoolSize) {try {Iterator it workers.iterator();while (it.hasNext() extra 0 poolSize maximumPoolSize) {it.next().interruptIfIdle();--extra;}} catch (SecurityException ignore) {// Not an error; it is OK if the threads stay live}}} finally {mainLock.unlock();}}所以显然这是一个不受欢迎的情况 . 但是没有检查setCorePoolSize导致maximumPoolSize最终小于corePoolSize并且没有记录这种情况的影响 .设置核心池大小public void setCorePoolSize(int corePoolSize) {if (corePoolSize 0)throw new IllegalArgumentException();final ReentrantLock mainLock this.mainLock;mainLock.lock();try {int extra this.corePoolSize - corePoolSize;this.corePoolSize corePoolSize;if (extra 0) {int n workQueue.size(); // dont add more threads than taskswhile (extra 0 n-- 0 poolSize corePoolSize) {Thread t addThread(null);if (t null)break;}}else if (extra 0 poolSize corePoolSize) {try {Iterator it workers.iterator();while (it.hasNext() extra-- 0 poolSize corePoolSize workQueue.remainingCapacity() 0)it.next().interruptIfIdle();} catch (SecurityException ignore) {// Not an error; it is OK if the threads stay live}}} finally {mainLock.unlock();}}难道你不认为应该有一种机制阻止这种情况结束吗
http://www.zqtcl.cn/news/901426/

相关文章:

  • 平面毕业设计作品网站推广普通话ppt
  • p2p网站开发思路方案免费建简单网站
  • 微信朋友圈的网站连接怎么做互联网工程有限公司
  • 高大上企业网站优秀的门户网站
  • 做seo对网站推广有什么作用自己做电商网站吗
  • 网站从哪些方面来做泉州网页搜索排名提升
  • 网站建设可以给公司带来想做网站开发兼职
  • 天津市免费建站精美大气的餐饮类企业网站
  • 购物网站那个信用好又便宜手机模板的网站
  • 建筑企业资质查询网站怎么查网络服务商
  • 汉川市城乡建设局网站企业销售网站建设
  • 梅州建设网站域名购买流程
  • 单页网站与传统网站的区别wordpress对接微信
  • 做公司网站深圳旅游
  • 最好企业网站网站建设 的销售图片
  • 怎么创建网站 免费滴做网站算运营吗
  • 廊坊网站建设-商昊网络正规网站优化推广
  • 网站建设拍金手指排名贰贰安装wordpress数据库错误
  • 食品网站建设需求分析购物app大全
  • 电商美工广州seo技术外包公司
  • 重庆旅游seo整站优化深圳宝安区是富人区吗
  • 网站开发验收模板网站欧美风格
  • 自己做发卡网站什么是网络设计制作
  • 如何搭建一个公司网站互联网推广怎么找客户
  • 江苏同隆建设集团有限公司网站asp.net新建网站
  • 爱站网挖掘工具小程序网站开发怎么样
  • 网站文章批量上传工具自己制作免费网站
  • 凡科快速建站建设网站遇到问题的解决方案
  • 深圳市公司网站建设公司十大互联网营销公司
  • 免费发布推广信息的网站百度招聘2022年最新招聘