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

丹阳高铁站对面的规划wordpress myqaptcha

丹阳高铁站对面的规划,wordpress myqaptcha,建行员工app最新版下载,江西建站哪家专业文章目录一、keepAliveTime的概念二、keepAliveTime的设置方法2.1. 通过构造函数设置2.2. 通过setKeepAliveTime方法动态设置三、线程是如何根据keepAliveTime进行销毁的阅读这篇文章#xff0c;你将会知道#xff1a; keepAliveTime的概念。 keepAliveTime是如何设置的。 线… 文章目录一、keepAliveTime的概念二、keepAliveTime的设置方法2.1. 通过构造函数设置2.2. 通过setKeepAliveTime方法动态设置三、线程是如何根据keepAliveTime进行销毁的阅读这篇文章你将会知道 keepAliveTime的概念。 keepAliveTime是如何设置的。 线程是如何根据keepAliveTime进行销毁的。 一、keepAliveTime的概念 1 keepAliveTime的单位是纳秒即1s1000000000ns1秒等于10亿纳秒。2 keepAliveTime是线程池中空闲线程等待工作的超时时间。3 当线程池中线程数量大于corePoolSize核心线程数量或设置了allowCoreThreadTimeOut是否允许空闲核心线程超时时线程会根据- 1 keepAliveTime的值进行活性检查一旦超时便销毁线程。4 否则线程会永远等待新的工作。 /*** Timeout in nanoseconds for idle threads waiting for work.* Threads use this timeout when there are more than corePoolSize* present or if allowCoreThreadTimeOut. Otherwise they wait* forever for new work.*/private volatile long keepAliveTime; 二、keepAliveTime的设置方法 2.1. 通过构造函数设置 通过 keepAliveTime 、unit共同决定实际的 keepAliveTime值最终会转化成纳秒单位。 2.2. 通过setKeepAliveTime方法动态设置 重新设置线程池的keepAliveTime属性如果发现将要设置的值比原来的keepAliveTime值要小即减小keepAliveTime则触发interruptIdleWorkers()中断空闲线程。 interruptIdleWorkers()是怎么中断线程的呢 1interruptIdleWorkers先拿出所有的工作者进行遍历判断工作者对应的线程是否已经中断。 2如果没有产生中断则判断是否可以获得锁如果能获得锁则代表是空闲线程然后中断该线程。 3至于线程的中断在什么时候会抛出中断异常同学们可以自己找下资料也可以参考下别人写的这篇文章Java并发之线程中断 三、线程是如何根据keepAliveTime进行销毁的 1.线程池中的线程通过工作者Worker这个类进行包装Worker通过 ThreadPoolExecutor.runWorker() 这个方法进行自旋从队列中获得task并完成工作。 2.如果拿不到task即firstTask null 或 getTask() null则会退出自旋进入finally代码块。finally中会调用processWorkerExit方法注销当前Worker实现worker的销毁。对keepAliveTime的使用就在getTask()方法中这个在后面讲解。 3.getTask 怎么使用 keepAliveTime 1首先也是一个自旋当allowCoreThreadTimeout(运行空闲核心线程超时) 或 wccorePoolSize(当前线程数量大于核心线程数量) 时timed会标识为true表示需要进行超时判断。 2当wc当前工作者数量大于 最大线程数 或 空闲线程的空闲时间大于keepAliveTimetimed timeout以及wc1或workQueue任务队列为空时会进入compareAndDecrementWorkerCount方法对wc的值减1。 3当compareAndDecrementWorkerCount方法返回true时则getTask方法会返回null终止getTask方法的自旋。这时候回到runWorker方法就会进入到processWorkerExit方法进行销毁worker。 4.compareAndDecrementWorkerCount中操作的是ctl属性 1ctl是中心控制器一个AtomicInteger类型的整数通过数字的二进制编码的位进行分段不同的二进制位段表示有不同的含义。 2在ctl中低29为表示线程池的容量即线程池最大容量为 536870911 000 11111111111111111111111111111。 /*** The main pool control state, ctl, is an atomic integer packing* two conceptual fields* workerCount, indicating the effective number of threads* runState, indicating whether running, shutting down etc*/private final AtomicInteger ctl new AtomicInteger(ctlOf(RUNNING, 0));// COUNT_BITS 29private static final int COUNT_BITS Integer.SIZE - 3;// CAPACITY 536870911 000 11111111111111111111111111111private static final int CAPACITY (1 COUNT_BITS) - 1;private static int workerCountOf(int c) { return c CAPACITY; }
http://wiki.neutronadmin.com/news/113366/

相关文章:

  • seo优化方法网站快速排名推广渠道网站建设制作设计seo优化湖南
  • 郑州网站建设那家好南京网站运营公司
  • 怎么让别人找你做网站西宁市建设局官方网站
  • 泸州市建设局网站狼群神马手机免费影院
  • dz网站地图怎么做wordpress加载转圈
  • 从哪些方面评价一个企业的网站建设wordpress浮动社交
  • 单页网站怎么做外链wordpress上图片不显示
  • 阳江东莞网站建设织梦网站描述
  • 做网站的经历国外广告联盟平台
  • 浙江做铁塔的公司网站网页代码怎么写
  • 研究院网站建设wordpress写博客插件
  • 影响网站权重的因素有哪些苏州做网站公司哪家比较好
  • 江苏住房和城乡建设网站fatal error: class wordpress
  • 张梅 合肥网站建设做网站除了域名还要买什么
  • 福州网站推广国家企业信用信息公示系统下载
  • 烟台企业网站建设百度域名验证网站
  • 误给传销公司做网站算犯罪吗品牌网站建设9小蝌蚪9
  • 机械技术支持 东莞网站建设jquery素材网站
  • 被k掉的网站怎么做才能有收录后台与网站
  • 网站建设的安全威胁林州网站建设
  • 上海营销型网站建设平台思帽西宁网站建设
  • 南平市建设局网站企业网站建设方案价位
  • 泉州网站开发教育类网站框架
  • 婚纱摄影网站的设计与实现论文山西网站建设公司排名
  • asp.net 网站开发 异步沈阳建设电商网站
  • wordpress 无法下载主题WordPress搜索优化工具
  • 冠县住房和城乡建设局网站搭建购物网站
  • 湖州 网站建设济南网站制作搜到
  • 网站创建方案链接制作
  • 政务网站建设目的 意义wordpress改了固定链接