|
|
1
14
实际上你可以做到,但这并不明显:
|
|
|
2
8
阅读threadpoolexecutor javadocs可能会建议亚历克斯V的解决方案是好的。但是,这样做将导致不必要的创建和销毁线程,而不像兑现的线程池。scheduledThreadPool不适用于可变线程数。在查看了源代码之后,我确信您将在每次提交任务时都生成一个新线程。即使你只提交延迟的任务,Joe的解决方案也应该有效。 我会监视您的线程,以确保您不会在当前的实现中浪费资源。 |
|
|
3
7
我怀疑里面什么都没有
当然,一个计划的执行器可以用于在非重复性任务之间插入延迟,或者它可以用于资源如此稀缺且重复性如此罕见的情况,以至于在新的工作到来之前删除所有线程是有意义的。所以,我可以看到你的建议绝对有意义的案例。
为了实现这一点,我将考虑尝试从
当绝对没有工作要做时,这种折衷会给您最多运行一个线程,当有很多工作要做时,它会给您所需的线程(当然,在系统的限制范围内)。 |
|
|
4
5
此问题是scheduledThreadPoolExecutor中的已知错误( Bug ID 7091003 并且已经被固定在Java 7U4中。虽然 looking at the patch 修复方法是“即使corepoolsize为0,也至少启动一个线程。” |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 2 年前 |
|
|
András Takács · Python多线程错误 2 年前 |