- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我们的应用程序中,我们有很多ThreadPoolExecutor
。当应用程序空闲时,ThreadPoolExecutor
也空闲,但应用程序中的空闲线程数非常多。
在thread dump中,我发现大部分线程属于等待任务的ThreadPoolExecutor
。使这些工作线程保持 Activity 状态是否有任何副作用?我应该在 ThreadPoolExecutor
中使用 setAllowCoreThreadTimeOut()
以便工作线程在空闲一段时间后死亡吗?
最佳答案
每个线程都有一个关联的堆栈,它需要一定量的内存(可配置)。如果您的线程处于等待状态(即使它们不是),它们也会保留该内存。它不能被您的应用程序的其余部分使用。因此,停止这些线程(使用 setAllowCoreThreadTimeout()
)、释放它们保留的内存并让 ThreadPoolExecutor
根据需要重新创建它们可能是有意义的。
关于java - 在 ThreadPoolExecutor 中设置 allowCoreThreadTimeOut() 是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25700846/
在我生活的世界中,构建一个将所有飞镖都扔到墙上的解决方案,并希望其中一些能命中靶心是一种非常糟糕的解决方案方法。 那么,我的问题出现了,什么时候在约定可接受的生产系统中使用 INSERT IGNORE
在数据处理时,经常会因为index报错而发愁。不要紧,本次来和大家聊聊pandas中处理索引的几种常用方法。 1.读取时指定索引列 很多情况下,我们的数据源是 CSV 文件。假设
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我是一名优秀的程序员,十分优秀!