- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
想象一下将任务添加到 ScheduledThreadPoolExecutor 中的情况。这些任务中的每一个都将以不同的周期间隔继续运行。
尽管所有此类任务不会同时运行,因为每个任务设置的时间间隔不同,但可能会出现大量线程竞争执行的情况。
线程总数有限制吗?似乎对空闲线程总数有限制。空闲线程的概念是否意味着长时间运行的任务(线程)可以在需要时被销毁并重新创建?
最佳答案
scheduledthreadpoolexecutor 的线程池大小是否持续增长?
没有。来自 http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html :
.... it acts as a fixed-sized pool using corePoolSize threads ...
线程总数有限制吗?
是的。见上文。
似乎对空闲线程总数有限制。
我不确定是什么让你这么想;文档(或测试时的行为)中没有任何内容暗示这一点。
空闲线程的概念是否意味着长时间运行的任务(线程)可以在需要时被销毁并重新创建?
任务!=线程;这个问题没有多大意义。任务在其运行的整个过程中都会占用其线程;因此,长时间运行的任务将使线程长时间占用,从而减少在此期间可用于其他计划任务的线程数量。任务永远不会被执行者销毁和重新创建,期间。执行器可能会尝试停止任务,但前提是您明确告诉它这样做,例如通过 shutdownNow() 来中断所有正在运行的任务。无关的是,固定大小池中的线程不会被销毁或重新创建,因为它是固定大小池。
关于java - ScheduledThreadPoolExecutor 的线程池大小是否持续增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19740641/
我是一名优秀的程序员,十分优秀!