|
1
14
简单的回答是:不要那样做。
整个要点 线程池 概念是你知道 不 尝试控制底层线程。等待池线程 . 线程池使线程保持在周围,因为建立线程是一个(相对)昂贵的操作。所以他们不会结束,但要活下去 其他 未来的工作。 这里真正的答案是:要么不要使用executor服务,要么寻找一个可以使用这个概念的解决方案(不需要你去做一些低级的事情)。 还有“真实”的答案:退后一步,告诉我们你打算用这种方式解决的“真实”问题。 |
|
|
2
8
注意
Executor.execute()
解决方法很简单:
对于如何使用
|
|
3
3
当你使用
您可以将代码更改为:
|
|
|
4
1
您可以尝试打印线程名称:
|
|
|
5
1
A) 当我们使用了newCachedThreadPool()时,这意味着我们需要一个ThreadPool服务。这意味着线程池服务将阻塞线程并执行您的任务(或命令)。不需要启动线程来执行任务,也不需要启动separate线程池。这是一种混乱的逻辑。 所以要么移除Threadpool并启动线程,要么移除线程并依赖于Threadpool。 B) 另外,我建议您使用调试。您可以调试并找到线程的状态(它应该是新的)。这将引导您进行更多的研究,最终您将看到ExecutorService execute()方法所期望的参数。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |